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

Product Decisions This Supports

  • Build vs. buy, resolved toward "build" — or rather "don't": at 0 stars, 0 dependents, no release since Feb 2018, and an archived repository, this is not a vendor dependency. Adopting it means forking it and owning it. Frame the decision as "is this 200-line convenience worth a permanent maintenance line item?" — almost always no.
  • Roadmap input for form boilerplate reduction: the package existed because Symfony form type classes accumulate repetitive method overrides (getBlockPrefix, translation_domain, data_class, block name conventions). That pain is real and worth tracking — but the modern answer is native PHP attributes on the form type (Symfony 6.1+) or configureOptions(), not a third-party annotation reader.
  • Migration/legacy triage: if this surfaces in an audit of an existing codebase, it is a tech-debt item, not a feature. It belongs in the "annotation-reader removal" epic that most Symfony teams already have (doctrine/annotations is itself deprecated in favor of attributes). Bundle it with that work.
  • Deprioritization of annotation-driven configuration as a pattern: this package reinforces a design direction Symfony has since moved away from. Use it as a data point that annotation-based form config is not a pattern to greenlight for new work.
  • Ecosystem-signal input: 0 stars / 0 dependents / archived / 8 years stale is a clean example of why the "stars and last-release date" gates exist in your dependency intake checklist. Useful as a calibration case for the eval rubric, not as a feature.

When to Consider This Package

Adoption criteria — realistically, all of these must hold:

  • You are on a pre-Symfony 6.1 / PHP 7.x codebase where native attributes for form configuration are unavailable, and you cannot upgrade yet.
  • You have already tried configureOptions() and a base abstract form type, and the remaining duplication is genuinely large (dozens of form types), not cosmetic.
  • You need exactly the helpers it provides and nothing more — this is a thin annotation layer, not a form-building framework. It will not solve conditional fields, dynamic form structure, or validation orchestration.
  • You have a named owner willing to fork and maintain it, including a plan for Symfony's annotation-reader removal.
  • Your dependency policy has an explicit exception path for archived MIT packages with zero dependents (i.e., you treat the fork as first-party code, not a dependency).

Look elsewhere — or do nothing — when:

  • You are on Symfony 6.1+: use native attributes and configureOptions(); the package's reason to exist is gone.
  • You need form generation from entities/DTOs, admin CRUD, or dynamic form builders: evaluate EasyAdmin, Symfony's form options system, or a maintained builder package instead.
  • You need security or bug support: there is none. Archived means no CVE response, no Symfony 7/8 compatibility, no issue triage.
  • You want low-risk, drop-in gains: the value here is small and the ownership cost is not. The honest recommendation for the vast majority of teams is to skip it and spend the hour writing the base form type.

How to Pitch It (Stakeholders)

For executives: This is an abandoned micro-library from 2018 that saved Symfony developers a few lines of boilerplate per form. It has no users, no maintainers, and no releases in eight years. Modern Symfony absorbed its purpose into the framework itself. Recommendation: do not adopt; if it is already in the codebase, schedule removal as routine cleanup, not a project.

For engineering: The underlying need — cutting repetitive method overrides in form type classes — is legitimate, and worth a small internal abstraction. Do not source that abstraction from an archived 0-star bundle. Write a one-file AbstractType base class or use native PHP attributes (Symfony 6.1+) and configureOptions(). If the package is present in a legacy app, treat removal as part of the broader annotations-to-attributes migration, and note that forking it means owning it forever with no upstream fixes.

Bottom line: zero strategic value, nonzero ownership cost. Declined.

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