phpcr/phpcr-migrations-bundle
A Symfony bundle that adds PHPCR migration support to your application, letting you version and apply content repository changes through configurable migration versions and console commands so database and repository updates stay consistent across environments.
phpcr/phpcr-migrations library into Symfony's DI/console, so it directly supports the decision of how we ship changes to a content repository (node types, properties, paths, fixtures, backfills) across dev, staging, and production. It turns "we need to change the CMS content model" into a repeatable, versioned release artifact rather than a manual admin-UI chore.doctrine/migrations is the norm.Consider it when:
migrate/status/rollback-style commands) and want the same for content nodes.Look elsewhere when:
doctrine/doctrine-migrations-bundle; this package solves a different problem.Due diligence before adoption: confirm the transitive state of phpcr/phpcr-migrations, check the actual repository/homepage (listed as unknown), inspect the bundle's service wiring and console commands, and run a proof-of-concept migration against a disposable workspace.
For executives (one paragraph): Our content platform stores data in a PHP Content Repository, which means content-model changes — new fields, renamed properties, bulk data fixes — are currently applied by hand and are hard to repeat or audit. This Symfony bundle is a small, MIT-licensed adapter that lets us treat those content changes as versioned, ordered, code-reviewed migrations executed by a console command, the same way we already manage database migrations. The business value is reduced release risk and less engineering time spent on manual CMS surgery. The trade-off is maturity: the package has a very small community footprint and an opaque repository, so I recommend a time-boxed pilot with version pinning and a documented fork/exit plan rather than a broad rollout.
For engineering leads: It's a thin Symfony integration over phpcr/phpcr-migrations — service definitions plus console commands, nothing structural. If you already know Doctrine Migrations, the workflow is familiar: write a migration class, register it, run it per environment. Concerns to validate in the spike: (1) low external adoption — we should own the upgrade path and be ready to vendor or fork; (2) the underlying migrations library's feature set and command semantics, especially around rollback and status reporting; (3) behavior across multiple PHPCR workspaces and in CI with ephemeral repositories. Keep it isolated behind the console interface so swapping it out is a contained change.
For the product owner: Adopting it unblocks content-heavy roadmap items — new content types, metadata backfills, structural cleanups — by making them shippable in a normal release train instead of requiring a maintenance window and manual editorial work.
How can I help you explore Laravel packages today?