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

kunicmarko/form-annotation-bundle

A Symfony bundle for defining forms with annotations on your entity classes. Configure fields and form options directly in code, reduce FormType boilerplate, and build forms automatically. Useful for rapid prototyping and smaller applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — mismatch at the framework boundary. Despite the framing as a "Laravel/PHP package," this is a Symfony Bundle built on the Symfony Form component, the Symfony DI container, and Symfony's bundle registration mechanism. It has no Laravel service provider, no facade, and no Illuminate contracts. Adopting it in a Laravel application is not a configuration exercise — it would require bootstrapping Symfony's Form component and a container bridge inside Laravel, which is a net-new integration project, not a dependency install. The package's actual value proposition (annotation-driven form helpers) is small and pattern-level, not infrastructural, so the cost of that bridge vastly exceeds the benefit.

Integration feasibility — effectively zero for the stated stack. With 0 stars, 0 dependents, and an archived repository, there is no community-tested path, no documentation of edge cases, and no evidence of production use. The last release (2018-02-25) predates PHP 8 attributes and targets the Doctrine annotation reader, which is deprecated in modern Symfony and absent from a standard Laravel install. Any integration would be a bespoke port, not an adoption.

Technical risk — high and unrecoverable. Archived status means no security patches, no PHP version support guarantees, and no upstream triage. A 2018-era Symfony bundle is unlikely to run unmodified on PHP 8.2+ or Symfony 6/7, and Laravel's supported PHP matrix has moved well past what this code was written against. The failure mode is not "it breaks loudly" but "it works until a transitive dependency bumps and then silently diverges," which is the worst case for a form-handling layer.

Key questions for the requester:

  • What capability do we actually want — declarative form-field mapping from model metadata, or reduced boilerplate in form definitions?
  • Is there a business reason to prefer a Symfony-derived pattern over Laravel-native Form Requests plus attributes?
  • Who owns patching this if we vendor it, and what is the acceptable window between PHP minor releases and our fork?
  • Are we willing to accept an unsupported dependency in a code path that handles user input validation?

Recommendation: Do not adopt. Treat this as a reference implementation to read for design ideas, not a dependency.

Integration Approach

Stack fit — none. Laravel's form and validation surface is Form Requests, the Validator component, and Blade/Eloquent casting. Symfony Forms is a fundamentally different model (data mappers, form types, event-driven transformation). Forcing the latter into the former produces two competing abstraction layers over the same concern, which is a long-term maintainability liability regardless of package quality.

Migration path. There is nothing to migrate from if we never adopt. If the goal is the underlying pattern — deriving form structure from model annotations/attributes — the correct move is a small in-house implementation using PHP 8 attributes plus Laravel's native validation, scoped to the handful of models that benefit. That is likely 200–400 lines of owned code versus an unbounded fork of an abandoned bundle.

Compatibility. Unverified and unverifiable without a spike. Expect conflicts on Doctrine annotations, Symfony Form major versions, and PHP 8 attribute syntax. Any spike should timebox hard — if it does not run green on our exact PHP and framework versions within a day, the answer is no.

Sequencing, if pursued anyway (not recommended):

  1. Confirm the specific capability gap in our current Laravel form layer.
  2. Evaluate Laravel-native alternatives and in-house attributes first — this should close the need in most cases.
  3. Only if a genuine gap remains, spike a vendored fork with pinned transitive dependencies and a written support owner.
  4. Isolate behind an internal interface so it can be swapped out without touching call sites.

Operational Impact

Maintenance — fully ours. The repository is archived, so every future PHP or framework upgrade is an unbudgeted fork task. A vendored copy needs a named owner, a fork in our namespace, and a standing line item in upgrade planning. For a convenience-layer package, that is a poor return on maintenance spend.

Support. No upstream issue triage, no CVE response, no maintainer to escalate to. Any bug becomes an internal debugging exercise against unfamiliar 2018-era Symfony internals.

Scaling. The package is a thin helper over form definition; it has no scaling characteristics of its own. Real scaling concerns live in validation throughput, request handling, and rendering — none of which this touches. Scaling is not the deciding factor here.

Failure modes.

  • Silent drift: dependency upgrades change behavior in form mapping with no upstream changelog to consult.
  • Framework upgrade block: the vendored bundle becomes the reason a PHP or Laravel major upgrade slips.
  • Security exposure: form handling sits on the untrusted-input path; an unpatched dependency there is a compliance and audit finding, not just tech debt.
  • Knowledge concentration: the one engineer who bridged Symfony Forms into Laravel leaves, and the integration becomes opaque.

Ramp-up. Low in absolute terms — the annotation surface is small and the source is readable. But that low ramp-up is misleading: the cost is not learning the package, it is owning and defending an unsupported framework bridge indefinitely. Net ramp-up cost to the team is moderate and permanent.

Bottom line for the portfolio: the package is archived, unmaintained, unused in the wild, and framework-mismatched to our stack. Score it as a design reference only. If the underlying need — declarative form definition from model metadata — is real, fund a small Laravel-native attributes implementation with an internal owner instead. That delivers the same ergonomic win with none of the orphaned-dependency risk.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
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
cgv/localized-resource