Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Form Bundle Laravel Package

endroid/form-bundle

Endroid FormBundle lets you build simple forms via Sonata Admin, store submissions, send notification emails when forms are completed, and export results. Extend behavior with custom event listeners.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — fundamental mismatch. Despite being distributed via Packagist and Composer-installable, endroid/form-bundle is a Symfony bundle, not a Laravel package. It registers through AppKernel::registerBundles() (a Symfony 2/3-era pattern), relies on the Symfony service container and bundle configuration semantics, and has a hard, undeclared runtime dependency on Sonata Admin Bundle for the actual form-authoring UI. Laravel has no concept of bundles or kernel registration; there is no service provider, no facade, no config publishing, and no Artisan surface. It cannot be composer require'd into a Laravel application and expected to function. Treat "Laravel/PHP package" in the request as an assumption to correct before any planning proceeds.

Integration feasibility — low to nil in a Laravel context. The feature set described (form configuration, submission storage, notification on submit, result export) is achievable natively in Laravel with substantially less ceremony: validation rules, Eloquent models, Notifications/Mailables, and a spreadsheet exporter. The only scenario where direct reuse makes sense is an existing Symfony application already running Sonata Admin. Even there, the archived status is disqualifying for new adoption.

Technical risk — high, and concentrated in maintenance and compliance.

  • Archived repository. No upstream fixes, no security patches, no compatibility updates. Any defect we find becomes ours permanently.
  • Zero stars, zero dependents, "readme"-level maturity. This is effectively unexercised code. No evidence of a production adopter, no meaningful issue history to mine for known failure modes, no test-coverage signal beyond a CI badge.
  • PII surface. The bundle ingests end-user form submissions, persists them, emails them onward, and exports them. An unmaintained component sitting on that path is a data-protection and audit problem, not just a technical one.
  • Version drift. AppKernel registration and Sonata Admin coupling imply an old PHP/Symfony floor. Modern Laravel also pulls symfony/* components at pinned versions, so Composer resolution conflicts are plausible even in a "let's just try it" spike.
  • Security posture. Form handling code of this vintage warrants review for CSRF handling, mass-assignment, output escaping in exports, and access control on the admin listing of submissions.

Key questions to resolve before any commitment:

  1. Do we actually operate any Symfony service, or is this purely a Laravel estate? (If Laravel-only, the evaluation ends here.)
  2. Is the business requirement genuinely "user-defined dynamic forms," or is it "a handful of known forms plus storage and notification"? The latter is days of native work, not a dependency decision.
  3. Who would own a fork, and for how long? What is the cost of that ownership versus reimplementation?
  4. What is the submission data model and volume? Any existing data to migrate?
  5. What maintained alternatives exist in our target stack (Filament, Nova, Livewire-based form builders, or a hosted form product)?

Integration Approach

Stack fit — none for Laravel. There is no adapter layer worth building. Writing a Symfony-bundle shim inside Laravel would mean booting a mini container, replicating Sonata Admin's routing and authorization model, and maintaining that bridge indefinitely — strictly more work than implementing the feature.

Migration path — three viable options, ranked.

  1. Reimplement natively (recommended for Laravel). Port the concept, not the code: a forms table for configuration and a form_submissions table for results, dynamic validation assembled from stored field definitions, a notification on submit, and an export via a maintained spreadsheet library. Scope is bounded and the resulting code is ours, testable, and upgrade-safe.
  2. Substitute a maintained package. If the requirement is truly admin-authored dynamic forms, evaluate Filament or Nova form builders / Livewire-based tooling. This buys community maintenance and current-framework compatibility at the cost of a new dependency with its own lock-in.
  3. Fork and modernize the bundle. Only defensible if we already run Symfony + Sonata and have a specific reason to preserve existing behavior. Even then, expect to own the full upgrade chain (PHP version, Symfony major, Sonata major) with no upstream to lean on.

Compatibility. Verify against our actual PHP version and framework majors before spending time: the AppKernel pattern predates Symfony 4, and the Sonata Admin constraint is not pinned in the README. Assume the package will not install cleanly on a current PHP 8.x runtime. Any spike should timebox Composer resolution to under a day and treat a dependency conflict as a terminal result rather than something to fight.

Sequencing.

  1. Confirm no Symfony/Sonata footprint — one afternoon, kills or advances the initiative.
  2. Elicit the real requirement: static forms vs. dynamic form authoring; submission volume; export format; notification channels; retention rules.
  3. Produce a feature-parity checklist from the README's claims (config, storage, notification, export) and estimate native build effort against it.
  4. Spike the native implementation for the highest-risk slice — dynamic validation from stored field definitions — before committing to a full build.
  5. If replacing something live, run parallel writes and a one-time data backfill, then decommission.

Operational Impact

Maintenance — the dominant cost. An archived package transfers 100% of maintenance to us from day one: no security advisories, no PHP or framework bumps, no bug fixes. In the fork scenario we inherit a Symfony bundle we otherwise have no reason to operate, creating a permanent skills and ownership island. In the reimplementation scenario, maintenance collapses to ordinary application code inside a stack we already staff.

Support. No vendor, no maintainer, no community. Zero stars and zero dependents mean there is effectively no one to escalate to and no prior art to search when something breaks. The README is the entirety of the documentation — no integration guide, no configuration reference, no upgrade notes.

Scaling — likely weak points. Notifications appear to fire inline on submission, making the mail transport a latency and failure dependency in the request path; these belong on a queue. Exports appear to be generated in-request, which will hit memory and execution-time limits as submission volume grows. Form configuration and submission storage are database-backed, which is fine, but the read pattern for the admin listing needs indexing and pagination review at volume. None of this is unfixable — but fixing it means editing code nobody maintains.

Failure modes to plan for.

  • Upgrade breakage. A PHP or Symfony major bump silently breaks the bundle; discovery happens at deploy time.
  • Lost submissions. A notification or persistence exception mid-request can drop a user's input with no retry and no dead-letter capture.
  • Export timeouts. Large exports exhaust request memory or hit gateway timeouts with no async fallback.
  • Data exposure. Misconfigured Sonata Admin access control or an unescaped export field leaks submitted PII. Highest-severity risk given the archive status.
  • Silent validation gaps. Old form-handling code may not enforce CSRF or server-side validation consistently; verify rather than assume.
  • Composer deadlock. Symfony component version pins collide with the Laravel framework's own constraints, blocking unrelated dependency upgrades downstream.

Ramp-up. Conceptual ramp-up is low — the feature set is familiar and small. Practical ramp-up is high: the code is undocumented, written against an unfamiliar bundle idiom, and requires Sonata Admin fluency to even navigate. Budget for reverse-engineering, not reading docs. This asymmetry is itself an argument for reimplementation, where the codebase is legible to the whole team on day one.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr