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 Extensions Bundle Laravel Package

fsi/form-extensions-bundle

FSi Form Extensions Bundle adds reusable extensions to Symfony's Form component, helping developers reduce boilerplate and build richer, more flexible forms. It integrates smoothly into Symfony apps and standard form workflows, with helpers designed to simplify common form customization tasks.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The first thing to correct in the framing: fsi/form-extensions-bundle is a Symfony bundle, not a Laravel package. It layers on top of symfony/form — registering additional form types/extensions and shipping a Twig form theme plus front-end assets for richer collection widgets (add/remove/reorder, picker-style inputs). If our estate is Laravel, architectural fit is effectively zero: there is no bridge to Laravel's validator, Blade, Livewire, or Inertia, and the bundle's service wiring assumes a Symfony kernel and container. If we have Symfony back-office/admin surfaces (which FSi's bundle family — fsi/admin-bundle, fsi/datagrid-bundle, fsi/resource-bundle — is explicitly built to serve), fit is reasonable because it extends the native Form component rather than replacing it.

Integration feasibility. On Symfony: Composer require, register in config/bundles.php, import bundle config, install/publish assets into Encore/Vite/importmap, append the form theme to twig.form_themes, load the JS. Realistically half a day for a developer already fluent in Symfony forms. On Laravel: cheaper to reimplement the two or three widgets we actually want than to build an adapter — treat the repo as a reference implementation.

Technical risk. Adoption signal is weak and should be read literally: 3 stars and 0 dependents means no publicly visible third party has validated this in production, and there is no downstream ecosystem to absorb a breaking change. Maintenance is effectively single-vendor (FSi Open, Poland) across a large bundle family, so attention is split. The 2026-02-04 release date needs verification against commit history — a fresh tag can equally mean active work or a low-effort compatibility bump. The front-end assumptions skew jQuery/jQuery UI era and may collide with a modern Symfony UX/Stimulus stack. MIT license is clean; no legal friction.

Key questions.

  • What is the supported Symfony/PHP matrix, and is there a CI pipeline proving it?
  • What does this give us beyond native CollectionType with allow_add/allow_delete/prototype plus a DataTransformer?
  • What JS/CSS does the form theme pull in, and are those dependencies vendored, npm-managed, or CDN-loaded?
  • How many maintainers hold commit rights, and what is the issue-response latency over the last 12 months?
  • If upstream goes quiet, do we have the appetite to vendor-fork?
  • Is there a persisted ordering field convention, or does sortable order live only in the DOM?

Integration Approach

Stack fit. Symfony 5.4/6.x/7.x + Twig 3 + PHP 8.x only. For any Laravel application in the portfolio, classify this as not applicable and close the request rather than funding an adapter.

Migration path. Target the bespoke Twig form themes and hand-rolled JS we currently use for collection add/remove/reorder. Migrate one form first, diff rendered markup against the current output, and keep the legacy theme registered behind a feature flag so rollback is a config change.

Compatibility. Validate against our exact Symfony minor, our asset build (Webpack Encore vs. Vite vs. importmap), and our existing JS runtime. If we are on Symfony UX/Stimulus, assume a parallel jQuery runtime on the page until we port the behavior ourselves — that is a real cost, not a footnote.

Sequencing.

  1. One-day spike on a single low-risk admin CRUD form.
  2. Build a written compatibility matrix (Symfony version, PHP, asset pipeline, JS runtime).
  3. Decide: adopt / vendor-fork / copy the 2–3 needed widgets inline.
  4. If adopting, pin an exact version in composer.json and mirror the package to internal Satis/Packagist so upstream deletion is not an outage.
  5. Roll out form by form with visual regression checks on the affected screens.

Operational Impact

Maintenance. Low-ceremony but high-ownership. Expect to pin versions and carry patches ourselves. The moment more than one application depends on it, a vendor fork becomes the default operating model; the opportunity score of 25.6 supports treating this as a narrow, contained utility rather than a platform bet.

Support. No SLA, GitHub issues only, no commercial contract implied. Escalation is an email to an agency whose commercial interest is in its broader bundle suite. Plan on internal SME coverage rather than vendor reliance.

Scaling. Server-side rendering cost is negligible. The real constraint is client-side: large collections (hundreds of rows) plus jQuery-based DOM manipulation degrade noticeably, and the added JS payload applies to every page that renders the theme.

Failure modes.

  • Asset build breaks after an upstream or Symfony upgrade.
  • Bundled form theme silently overrides our own due to twig.form_themes ordering.
  • Data loss: sortable reorder not mapped to a persisted position column, so order is lost on submit or reshuffle.
  • Symfony major upgrade removes a form API the bundle still calls.
  • jQuery conflicts with existing libraries on shared pages.
  • Upstream abandonment — mitigated only by the fork/mirror steps above.

Ramp-up. Under one day for a Symfony developer comfortable with the Form component and Twig theming. The non-trivial portion is asset/JS integration, and the only genuinely expensive scenario is a team attempting to port it into a non-Symfony framework.

Recommendation. No-go for Laravel. Conditional go for a Symfony back-office: proceed only after the one-day spike proves it replaces more custom code than it introduces, with a pinned version and a documented fork plan in place before the second consumer adopts it.

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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect