enhavo/form-bundle
A subtree split of Enhavo, an open source PHP CMS built on the fullstack Symfony framework, offering a flexible system for complex data structures with a clean, usable interface. See the main repository for full documentation and details.
Architecture fit. Despite the framing as a "Laravel/PHP package," enhavo/form-bundle is a Symfony bundle, not a Laravel package. It is a read-only subtree split of the enhavo/enhavo monorepo, meaning the published repository contains no issue tracker activity, no pull-request path, and no independent release lifecycle. Its runtime assumptions are Symfony-native: the Symfony Form component, the Symfony DI container with bundle service definitions, Twig-based form themes, and — most likely — Enhavo's own resource/configuration conventions. None of that maps onto Laravel's service container, Blade rendering, or Eloquent persistence without a bridging layer. For a Laravel codebase the architectural fit is poor; for a Symfony codebase it is plausible but only as part of a larger Enhavo CMS adoption.
Integration feasibility. Technically not impossible, practically unattractive. Laravel can consume Symfony components individually (the Form component itself is standalone and has been used outside Symfony), but this bundle is the integration glue around those components for Enhavo's CMS — the part with the least standalone value and the most coupling. Bridging would mean standing up Symfony's DI and Twig alongside Laravel's container and Blade, or reimplementing the bundle's wiring natively and effectively not using the package at all. Neither is a small, defensible scope for a product team.
Technical risk. High, concentrated in four areas:
composer.json and source.[READ-ONLY] means the package cannot be patched upstream through its own repo; all contributions must go through the monorepo, on the maintainers' schedule.Key questions to resolve before any further investment.
composer.json declare — exact require set, Symfony version constraint, PHP constraint, and whether enhavo/enhavo core bundles are hard dependencies?Stack fit. There is no clean fit for a Laravel application. Laravel's idiomatic form surface — validation rules, Form Requests, Blade components, Livewire/Filament/Inertia for dynamic UI — covers the same ground with first-class framework support. Adopting this bundle would place a Symfony-shaped island inside a Laravel application, and every future framework upgrade (Laravel major, PHP minor) becomes a two-sided compatibility problem.
Migration path. Not applicable in the usual sense: there is no existing usage to migrate from, and no incumbent to migrate to. If the team is already on Enhavo/Symfony, this bundle is an internal component and should be consumed as part of the CMS, not as an independent dependency. If the team is on Laravel, there is nothing to migrate — this is a greenfield decision, and the correct baseline is "do not adopt."
Compatibility. Unknown and undocumented. Treat compatibility as unverified until composer.json is read and a dependency-resolution dry run is performed against the target application's lockfile. Expect the bundle to pin Symfony component versions that conflict with a Laravel app's existing Symfony transitive dependencies (Laravel pulls in symfony/console, symfony/http-foundation, symfony/process, symfony/var-dumper, and others).
Sequencing (if the team insists on evaluating it).
composer.json from the split repo; enumerate hard dependencies and version constraints. Stop here if enhavo/* core bundles are required.Maintenance. The heaviest cost. A read-only split with no independent issue tracker means every bug, patch, and version bump routes through a monorepo the team does not control. Any local fix must be carried as a Composer patch (e.g., cweagans/composer-patches) or a fork — both of which create recurring upgrade friction. Budget for a named owner and a standing quarterly review of upstream activity.
Support. Effectively vendor support without a contract. Documentation lives in the main repository, not here; the split's README explicitly redirects. Expect to read source to answer most questions. There is no community to lean on at 0 stars / 0 dependents, so internal knowledge concentration is a risk — plan for at least two engineers with context.
Scaling. Performance is a non-issue: this is server-side PHP form definition and rendering, and the bundle is unlikely to be a throughput bottleneck relative to database and template rendering. The scaling concern is organizational, not technical — the cost of every additional engineer who must learn Enhavo's conventions to touch form code.
Failure modes to plan for.
Ramp-up. Steep and mostly non-transferable. Engineers would need Symfony Form semantics, Enhavo's resource/configuration model, Twig form theming, and the specifics of this bundle's wiring — a body of knowledge that does not compound with the team's Laravel expertise and does not transfer to the next project.
Recommendation. Do not adopt for a Laravel stack. The package is an internal component of a Symfony CMS published as a read-only split, with zero adoption signal and no standalone documentation. The integration cost is high, the leverage is low, and the exit cost is asymmetric. If the underlying need is dynamic or admin-configurable forms, scope that requirement directly and evaluate Laravel-native options (Filament, Livewire, a schema-driven form builder) against it. Revisit only if the organization is committing to Enhavo/Symfony as a platform — in which case this bundle should be consumed as part of that platform decision, not evaluated in isolation.
How can I help you explore Laravel packages today?