agence-adeliom/sylius-happy-cms-plugin
Sylius plugin that integrates Happy CMS, letting store admins manage pages, content blocks, and rich text alongside commerce data so you can build flexible merchandising content without custom development.
Architecture fit — primary concern: The release data describes agence-adeliom/sylius-happy-cms-plugin, which is a Sylius (Symfony) plugin, not a Laravel package. It provides a CMS/CMF layer (blocks, routes) and admin CRUD scaffolding for Sylius storefronts. As scoped — "a Laravel/PHP package" — there is no native architecture fit: it cannot be dropped into a Laravel application, has no service provider/container bindings in the Laravel sense, and depends on Symfony bundles, Sylius resources, and Doctrine ORM conventions. It is only relevant to a Laravel team as a separate Symfony-based commerce/content service behind an API boundary. This must be resolved before any further evaluation spend.
Integration feasibility: Only feasible in one of two shapes:
Direct in-process use from Laravel: not feasible.
Technical risk (release-specific):
CrudAdminFactory (PR #90) is a dependency-API break. Any local code extending or calling that factory will fail after upgrade — this is the highest-impact item and is not a runtime-flagged deprecation.#[AsAdmin] emitted by makers (PR #91) changes generated output, not just internals. Newly scaffolded admin classes now require easy-crud 2.4+. Consumers pinning easy-crud <2.4 will produce admin classes that do not register. That is a de facto minimum-version bump shipped in a minor release.@jdadeliom), and the release notes list that same author as a "new contributor" — a metadata inconsistency suggesting release automation rather than genuine contributor growth. Maintainer concentration remains high.Key questions:
easy-crud constraint does v2.4.0 declare in composer.json — ^2.4 or wider?CrudAdminFactory?require or require-dev entry?Stack fit: Laravel's ecosystem (Eloquent, Blade/Livewire, Laravel auth, Horizon/Octane) does not map onto this plugin's assumptions (Doctrine entities/resources, Sylius resource bundles, Symfony form/attribute-driven admin). Treat this as a foreign service, not a library. No shared runtime, no shared container, no shared ORM.
Migration path (if pursuing the headless split):
easy-crud to ^2.4 in the Symfony app's composer.json; grep the codebase for CrudAdminFactory and for maker-generated admin classes.easy-crud first, in isolation, and run the admin suite — establish whether the removal breaks custom admin code independently of the plugin bump.sylius-happy-cms-plugin to v2.4.0 on a branch; run a full cache warm and container compile to surface attribute registration errors early.#[AsAdmin] shape before regenerating anything real.Compatibility: Two independent constraints must align — easy-crud 2.4 (for #[AsAdmin] output and factory removal) and the Sylius/PHP version supported by the plugin. Confirm both before scheduling. Existing admin classes registered the pre-attribute way should continue to work; only newly generated ones require 2.4.
Sequencing: Dependency audit → easy-crud bump → plugin bump → container/cache validation → maker diff review → CMF route/block regression → AI Mate tooling trial → staging. Do not bundle the easy-crud bump with the plugin bump in one PR; keep them separable so a rollback is surgical. The headless contract work should run in parallel and is the long pole, not the version bump.
Maintenance: Ongoing cost is dominated by tracking easy-crud, which the plugin treats as a moving target — a minor easy-crud release already forced a factory removal here. Budget for a compatibility review on every easy-crud minor. The plugin itself is agency-maintained with concentrated authorship; expect response latency on issues and limited external contribution.
Support: No commercial support implied. Escalation is GitHub issues against a small French agency. For a revenue-affecting storefront and admin surface, that is thin — plan an internal owner who can read Symfony/Sylius internals, and consider vendoring a fork for critical patches.
Scaling: Runtime scaling is not the concern — admin registration is compile-time (container/attribute discovery) and CMF route/block resolution is cache-warmed. Scaling risk sits in admin generation throughput and CI time (container compile with attribute scanning) and in the headless API layer we would add on the Laravel side, which is our cost, not the package's.
Failure modes:
easy-crud when other bundles require <2.4 — blocks the upgrade entirely.CrudAdminFactory at runtime after a partial upgrade — admin pages 500 with an unclear container error.#[AsAdmin] but easy-crud is older, so generated classes exist yet never appear in the admin UI. Worst failure mode because it looks like success.Ramp-up: Steep for a Laravel-oriented team — requires Symfony bundle/container intuition, Sylius resource conventions, Doctrine mapping, and now attribute-based admin registration. Estimate meaningful productivity only after the team has done one full admin-generation cycle and one cache/container debug cycle. The AI Mate tooling marginally lowers the CMF route/block discovery cost for newcomers, but should not be treated as a substitute for Sylius fundamentals.
How can I help you explore Laravel packages today?