- Is harentius/blog-bundle a Laravel package or a Symfony bundle?
- It is a Symfony bundle, not a Laravel package. Harentius BlogBundle plugs into Doctrine ORM plus Symfony routing, services and events to add posts, categories, tags, comments and RSS to an application. Laravel teams can still use it, but as a separate headless service consumed over HTTP rather than as a Composer dependency inside the same codebase.
- How do I install harentius/blog-bundle with Composer?
- Run composer require harentius/blog-bundle inside a Symfony application, then register the bundle in config/bundles.php. You will also need to configure the Doctrine connection and create the schema for the blog entities. Version 5 requires PHP 8.1 or newer and Symfony 6 or 7, so verify your platform baseline before installing.
- Which Symfony and PHP versions does version 5 support?
- Version 5 targets Symfony 6 and Symfony 7 and requires PHP 8.1 or newer, dropping Symfony 5 now that it is end of life. That is a hard floor for anyone still running Symfony 5.x or PHP 8.0. Check your PHP and Symfony matrix before planning an upgrade.
- Does v5 still include the Sonata Admin interface for managing posts?
- No. Version 5 removes Sonata Admin along with other bundled dependencies, so the admin UI is no longer a package responsibility. Content management now goes through the new programmatic blog management API or an interface you build yourself. If editors rely on the bundled admin screens, plan a replacement before upgrading.
- How do I migrate from v4 to v5 without breaking my admin?
- There is no drop-in path: v5 is a major release with a removed subsystem and no documented deprecation route in the release notes. Inventory all v4 usages first, including Sonata Admin customisations, template overrides, direct entity and repository access, and any classes you were receiving transitively from removed dependencies. Budget several sprint weeks if your admin customisation is non-trivial.
- How can a Laravel application consume the blog content?
- Run the bundle as a standalone Symfony blog service and have your Laravel app call its API as a client. That isolates the blog domain from your application release cadence and avoids in-process coupling. Because the API is a brand-new surface in v5, validate its CRUD behaviour, error semantics and authentication in a sandbox before production planning.
- What authentication model does the new blog management API use?
- The v5 release notes do not state an authentication or authorisation model, and the API ships without declared versioning or contract guarantees. Treat it as unstable until you have proven otherwise in your own environment. Put your own gateway or token layer in front of it if it is exposed outside a trusted network.
- How do I extend or override the bundle's entities, templates and routes?
- The bundle exposes services and events and ships Doctrine entities and repositories designed to be extended, along with configurable templates, routing and image uploads. You can override templates and routes through bundle configuration and subscribe to events to hook in custom behaviour. Extending rather than forking keeps future upgrades manageable.
- Does it handle comments, moderation, nested replies, SEO slugs and RSS feeds?
- Yes. Posts, categories, tags, comments, RSS feeds, comment moderation with nested replies, and SEO-friendly slugs with per-post metadata are core features of the bundle. What changed in v5 is the management surface: the Sonata Admin CRUD that used to ship them is gone, so the data model remains but the admin experience is yours to provide.
- How do I evaluate and test it safely, and what is the v4 support horizon?
- Stand the service up in a sandbox, exercise the full CRUD flow through the API, and validate auth and error handling before any production commitment. If you must stay on v4 to keep the admin UI, pin the version deliberately and record the end-of-life date, since v4 keeps you on an unsupported Symfony line. Get the maintainer's support horizon for the v4 branch confirmed in writing.