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

Sonata Admin Annotation Bundle Laravel Package

ibrows/sonata-admin-annotation-bundle

Configure Sonata Admin classes with PHP annotations instead of verbose YAML or service definitions. Declare fields, filters, list/show/form settings and routes directly above each entity for cleaner, self-documenting admin code. Requires Symfony and SonataAdminBundle.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for back-office tooling. If we already run Sonata Admin, this bundle is an alternative to writing configureFormFields / configureListFields / configureDatagridFilters / configureShowFields by hand for every entity. The decision it informs: do we invest in a metadata-driven admin layer, or absorb the boilerplate cost in each Admin class?
  • Admin surface velocity as a roadmap input. Entity-heavy domains (catalog, CMS, multi-tenant config, moderation queues) generate many near-identical admin screens. Annotation/attribute-driven mapping compresses that work, which shifts how many admin screens fit in a sprint and therefore what back-office scope we can promise to ops and support teams.
  • Prototype-to-demo decisions. Fast declarative mapper definitions let us stand up a credible internal admin screen for stakeholder review before committing to a full build. Useful for go/no-go on internal tools that may never ship to customers.
  • Architecture direction: declarative configuration vs. imperative admin classes. Adopting this establishes a convention (field config lives on the entity/model, not in the admin class). That is a one-way-ish door for team conventions and code review standards, so it's a real architectural decision, not just a dependency.
  • Migration planning decision. The package is annotation-based, and Doctrine annotations are deprecated in favor of PHP 8 attributes. Adopting it now forces a roadmap item: migrate to attributes or to native Sonata mapping within N quarters.
  • Supply-chain and maintenance risk budget. Zero stars, zero dependents, a single vendor namespace, and a low activity score mean the real PM decision is not "is it good?" but "are we willing to own it?"

Important framing correction: despite being described to us as a Laravel/PHP package, this is a Symfony bundle built for Sonata Admin. It has no Laravel applicability. Any evaluation must start with "are we a Symfony + Sonata Admin shop?" — if not, the decision is a one-line no.

Note on the scores: the high opportunity score (9.65) alongside a 0.03 composite is best read as "unmet niche, unproven artifact" — high whitespace, no evidence of adoption. Do not treat opportunity as demand validation.

When to Consider This Package

Consider it when:

  • The stack is Symfony with Sonata Admin already in production, and Admin classes are a measurable share of maintenance burden (many entities, repetitive mappers).
  • The team is comfortable with annotation-driven configuration and the codebase already depends on doctrine/annotations for other bundles.
  • The work is internal-facing back office where a broken admin screen is an inconvenience, not a revenue or compliance event.
  • We are willing to vendor or fork the package into our repo and own it, rather than depend on upstream releases.
  • A timeboxed spike (1–2 days, one representative entity) can prove the DX win before any broader commitment.
  • There is an explicit owner and a dated exit plan (migrate to PHP 8 attributes or to native Sonata mapper config).

Look elsewhere when:

  • The stack is Laravel, or Symfony without Sonata Admin. Then evaluate Filament, Nova, EasyAdmin, or Backpack instead — this package solves nothing there.
  • We need a maintained, security-patched dependency with a support path. Zero stars / zero dependents / single maintainer is a hard fail for anything touching PII, billing, or access control.
  • We are on or moving to PHP 8+ and want attributes natively; Sonata Admin's own modern mapping plus PHP attributes avoids the deprecated annotation layer entirely.
  • Admin screens need heavy conditional logic, computed fields, custom actions, or workflow state machines — declarative mapping hits a ceiling quickly and you end up back in imperative code, now with two places to look.
  • The API-first / headless direction is real. Investing in server-rendered admin mapping is a bet against that roadmap.
  • Onboarding speed matters more than cleverness: annotations hide configuration from IDE navigation and static analysis, which raises the cost of new engineers.

Adoption checklist before saying yes: license compatibility, PHP/Sonata version constraint matrix, test coverage, last-commit recency, whether it works with our Doctrine annotation reader version, and a written internal owner.

How to Pitch It (Stakeholders)

For executives (30 seconds): This is a small, niche open-source add-on that reduces repetitive code in our internal admin screens — the back-office tools our ops and support teams use, not anything customers see. It is not a strategic dependency and not a differentiator. It is unmaintained, has effectively no user base, and relies on a PHP configuration mechanism that is being phased out. Recommendation: treat it as a reference pattern or a small internal fork, not a production dependency. Expected upside is developer-hours saved on admin screens; expected downside is a dependency we have to babysit. Decision requested: approve a 1–2 day spike, not a rollout.

For engineering: The bundle moves Sonata's Form/List/Show/Datagrid mapper configuration from imperative methods in Admin classes onto annotations on the entity. Upside: less per-entity boilerplate, config colocated with the model, faster scaffolding. Downsides we must accept explicitly: Doctrine annotations are deprecated (PHP 8 attributes are the forward path); zero stars and zero dependents means no community bug-finding, no security response, and no upgrade help at the next Sonata major; annotations are invisible to static analysis and IDE "find usages," which taxes onboarding. Mitigations: pin the version, vendor it into src/ under our ownership, add integration tests around a representative entity, and log a tech-debt ticket to migrate to attributes or native Sonata config with a target quarter.

Bottom line: Low-cost experiment, high-maintenance artifact, narrow applicability. Fund a spike with a clear kill criterion — if the spike doesn't cut admin-class line count meaningfully on a representative entity, drop it and stay on native Sonata configuration.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core