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

Extended Form Type Laravel Package

grossum/extended-form-type

Grossum Extended Form Type is a Laravel/PHP package for extending standard form types, making it easier to build reusable, customized form fields with less boilerplate. It fits into existing form workflows and helps keep field definitions clean and maintainable.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor. Despite being distributed via Composer and written in PHP, grossum/extended-form-type is a Symfony bundle (ExtendedFormTypeBundle), not a Laravel package. It hooks into Symfony's symfony/form component and the Symfony DI/HttpKernel bundle registration lifecycle (Bundle class, Resources/config/services.yml, form type extensions). Laravel has no bundle registry, no form component, and no equivalent extension point — its form handling is Blade + FormRequest validation + controller-bound request data. Nothing in this package maps onto that architecture without importing a parallel framework subsystem.

Integration feasibility — low. Three viable paths, all unattractive:

  • Adopt Symfony Form inside Laravel: technically possible (symfony/form is framework-agnostic), but you would be introducing a second validation/rendering paradigm alongside Laravel's, plus the bundle layer is dead weight since Laravel cannot boot a Symfony bundle. You would use the underlying form types directly, not this package as shipped.
  • Port the form-type logic: the value, if any, is in the custom type classes themselves (likely composite/nested or dynamic-collection types). Those are usually a few hundred lines and cheaper to re-implement idiomatically than to port.
  • Run it in a Symfony service: only sane if the surrounding application is already Symfony, which contradicts the Laravel premise.

Technical risk — severe.

  • Abandonment: last release 2018-04-13, roughly seven years without maintenance. No PHP 8.x compatibility work, no symfony/form 5/6/7 support, no security triage.
  • Ecosystem signals: 0 stars, 0 dependents, score 0.06. There is effectively no user base, meaning no incidental bug discovery and no peer support. A single-maintainer 2018 Symfony bundle is a textbook supply-chain liability.
  • Platform drift: a 2018 bundle will almost certainly pin php: ^7.0|^7.1 and symfony/form: ^2.8|^3.0, which collide with Laravel 10/11's PHP 8.1+ floor and with current symfony/* transitive constraints. Composer resolution failure is the expected outcome, not an edge case.
  • Audit exposure: unmaintained transitive dependencies are a standing finding in any security review or SOC2/ISO questionnaire.

Key questions.

  1. What specific capability attracted us — nested/composite form types, dynamic collection add/remove, or conditional field rendering? Each has a native Laravel equivalent.
  2. Is the target application actually Laravel, or is this a mixed PHP estate where a Symfony service already exists?
  3. Do we have a hard requirement (legacy data shape, shared UI contract) that forces byte-level parity with this package's behaviour?
  4. Who owns the fork if we vendor it, and what is the patch SLA for PHP/Symfony upgrades?
  5. Has a security/licensing review cleared a 2018 single-maintainer dependency?

Integration Approach

Stack fit — none as a bundle. Treat the repository as reference source code, not a dependency. The Symfony bundle wrapper is unusable in Laravel; only the underlying form-type classes carry potential value, and only after re-implementation.

Migration path — re-implement, do not install. Recommended sequence:

  1. Capability extraction (1–2 days, timeboxed). Read the form-type classes and document the exact behaviours: field composition rules, collection prototypes, validation hooks, any client-side JS contract.
  2. Native mapping. Translate to Laravel primitives — FormRequest rules for validation, Blade components or <x-form.*> for rendering, Livewire/Filament for dynamic collection add-remove, custom Rule objects for the non-trivial constraints.
  3. Parity test. Build a small fixture set asserting the original behaviour (field names, nesting, error keys) so front-end contracts and existing API payloads do not break.
  4. Decommission the reference. Archive the extracted behaviour notes; do not leave the package in composer.json.

Compatibility — disqualifying. Expect composer require to fail outright against Laravel 10/11 (php >=8.1, symfony/* ^6|^7). Forcing it via --ignore-platform-reqs or a replace block trades a clean failure for runtime failures that surface later, in production, at the framework boundary.

Sequencing. Capability extraction → native implementation → parity tests → removal of the package reference. If step 1 reveals genuinely non-trivial logic (complex conditional schemas, server-driven form definitions), escalate to a build-vs-fork decision before writing code — but scope that fork to the type classes only, vendored internally with a named owner and a PHP-version maintenance commitment.

Decision. Do not adopt. If the functionality is required, re-implement against Laravel's native form and validation stack; the porting cost is measured in days and eliminates an unmaintained dependency from the critical path.

Operational Impact

Maintenance — unacceptable as a dependency. No maintainer activity since 2018, no issue triage, no release cadence. Any defect we hit becomes our defect, with no upstream to escalate to. Every future PHP or Symfony major bump becomes a manual patch cycle against code we did not write.

Support — none. Zero stars and zero dependents means no community, no Stack Overflow corpus, no third-party tutorials, no one else hitting our bugs. Internal onboarding relies entirely on whoever reads the source.

Scaling — neutral to negative. The package itself is unlikely to be a throughput bottleneck (form type definition is a per-request metadata concern, typically cheap). The real scaling cost is organisational: a frozen dependency accumulates upgrade debt that compounds each time the platform moves, eventually forcing a rushed migration under deadline pressure.

Failure modes.

  • Dependency resolution failure on any Laravel/PHP upgrade — the highest-probability event, and a hard build break.
  • Silent behavioural drift if force-installed: form rendering or validation edge cases diverge from framework expectations with no error until a user reports bad data.
  • Security advisory with no patch path — orphaned transitive dependency flagged in audit, forcing emergency removal.
  • Bus factor of one — if the sole maintainer's repository disappears, the source is unrecoverable; mitigate by vendoring a copy if any reference value is retained.

Ramp-up — low effort, low payoff. Reading the package is fast (small surface area), but that speed reflects thin value rather than simplicity. A new engineer can absorb the needed behaviour in a day and re-implement it in Laravel idiomatically; the ramp-up cost of adopting it as-is is higher, because they must also learn Symfony's form component's model to use it correctly.

Net operational verdict. This is a zero-community, seven-year-stale Symfony artifact being evaluated for a Laravel stack. The correct operational posture is to keep it out of composer.json entirely, capture its behaviour as documentation, and own a small native implementation instead — trading an unpatchable dependency for a few days of well-scoped engineering.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle