sulu/form-bundle
SuluFormBundle lets content managers create dynamic forms directly in Sulu Admin—such as contact or sweepstake forms—position fields in a grid, and configure emails sent to visitors or themselves. Built on the Symfony Form Component and theming features.
DisabledCsrfTokenManager conflicts with Laravel’s built-in CSRF; custom middleware required.$request->get() with the correct accessor methods for Symfony 8. Any adapter layer that proxies a Laravel Request into Symfony’s Request must map query / request / attributes explicitly — the implicit get() fallback behavior can no longer be relied on. This is a concrete adapter-design constraint, not just a cosmetic fix.FormHandler) into Laravel’s container.form, form_field, form_submission) plus PHPCR (Jackalope) for content. Requires migration scripts, a data mapper, or a hybrid storage layer.FormType, EventDispatcher — require rewrites or polyfills.MediaManagerInterface; requires Spatie Media Library or similar.composer.json constraints before scheduling work.FormType with Laravel Form Requests or Livewire/Alpine.js.get() semantics.MediaManagerInterface with Spatie Media Library.| Phase | Action | Tools/Dependencies | Risk |
|---|---|---|---|
| Assessment | Audit form usage; identify Sulu-specific dependencies; pin and evaluate 3.0.1 first | Postman, Laravel IDE Helper | Low |
| Upgrade Validation | Upgrade 3.0.0 → 3.0.1 in isolation; regression-test external redirect links and cache behavior across requests | Pest/PHPUnit, staging env | Low |
| Abstraction | Create adapter layer for Symfony services; enumerate from PHP service definitions | Laravel Service Providers, Symfony Polyfills | Medium |
| Frontend | Replace Twig with Blade/Inertia; migrate JS | Alpine.js, Vite | Medium |
| Backend | Rewrite submission logic to Laravel Form Requests | Laravel Validation, API Resources | High |
| Database | Decide schema strategy (migrate / hybrid / proxy) | Doctrine DBAL, Eloquent | High |
| Admin UI | Keep Sulu admin via API proxy, or build Laravel admin | Filament, Nova, custom Blade | High |
| Testing | Pest/feature tests for submission, validation, storage, redirects | Laravel Testing, Mockery | Medium |
| Deployment | Containerize Sulu + Laravel, or split into services | Docker, Kubernetes | Medium |
EventDispatcher/HttpClient.FormType with Laravel equivalents.platform-check and CI matrix testing across supported Symfony/Laravel combinations.Request::get() fallback behavior will silently return null for attributes — manifesting as missing form data rather than an exception. Highest-value regression test to write.How can I help you explore Laravel packages today?