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

Easyadmin Extra Bundle Laravel Package

jorisdugue/easyadmin-extra-bundle

A Symfony bundle that extends EasyAdmin with additional fields, filters, actions, and utilities, helping you build richer admin backends with less custom code. It offers ready-to-use components for common CRUD and dashboard needs.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Install via Composer alongside EasyAdmin: composer require jorisdugue/easyadmin-extra-bundle, then register the bundle in config/bundles.php (Symfony) — this is a Symfony/EasyAdmin bundle, not a Laravel package, so expect Symfony bundle registration and YAML/PHP config rather than service providers.
  2. Look first at the bundle's configuration reference and the ExportManager / AdminExportBatchController classes — these are the entry points the 1.0.3 release explicitly hardened and tested, so they represent the intended public surface.
  3. First use case: enable an export action on an EasyAdmin CRUD controller, restrict it with requiredRoles, and run a batch export to confirm the role/format wiring works end to end.

Implementation Patterns

  • Per-CRUD export wiring: enable export on a CRUD controller, declare supported formats, and let ExportManager handle mode selection (e.g. current selection vs. full filtered set). Keep format lists and mode lists in config rather than controller code — 1.0.3 adds validation for unsupported formats and export modes, so invalid values now fail loudly instead of silently.
  • Role-gated operations: use requiredRoles on export actions. Both string and array forms are supported as of 1.0.3 (string-based values were previously mishandled), so you can migrate incrementally from requiredRoles: ROLE_ADMIN to a list without breaking.
  • Batch exports: route bulk operations through AdminExportBatchController and rely on selection normalization rather than pre-normalizing IDs in your own code. Passing raw POST selections through is the supported path.
  • Operation scoping: OperationScopeResolver centralizes which actions apply in which context (list/detail/custom CRUD action). Prefer extending or configuring it over duplicating isActionEnabled-style checks sprinkled across controllers.
  • Disable features explicitly: when a project shouldn't expose exports at all, disable the feature in config — 1.0.3 added test coverage and validation for disabled features, so the disabled path is now reliable and preferable to removing routes by hand.
  • Integration tip: treat role normalization as a boundary concern. If your roles come from a custom security model, map them to the bundle's expected role strings at the config layer; the 1.0.3 fix for export role normalization exists precisely because that boundary was previously lossy.

Gotchas and Tips

  • Silent failures were the old behavior. Before 1.0.3, malformed requiredRoles values and bad export role normalization could fail without an error. If you upgraded from 1.0.2 or earlier and previously "worked around" a silently skipped export, re-test — you may now get an explicit exception instead.
  • EasyAdmin version sensitivity. The 1.0.3 fix for resolving a valid EasyAdmin CRUD action "in all cases" implies earlier releases could miss the action context in edge cases (custom actions, non-standard routes). Verify exports still resolve correctly on any CRUD controllers using custom actions or overridden routing.
  • Mixed-type requiredRoles. Strings and arrays are both accepted now, but keep one convention per codebase. Mixed usage makes it hard to tell whether a role check failed because of the value or because of a typo.
  • Debugging exports: start at ExportManager for format/mode decisions, then AdminExportBatchController for selection handling, then OperationScopeResolver for "why isn't this action showing up." The 1.0.3 refactor extracted shared request-metadata and EasyAdmin context bootstrap logic, so stack traces will route through those new shared helpers — expect different call frames than in 1.0.2.
  • Extension points: the refactor toward shared context bootstrap and reused message strings suggests these are now stable seams. If you previously subclassed or monkey-patched the controller for request metadata, move to the shared helper instead.
  • Test-suite signal: mocks are now restricted to external infrastructure only, which means the bundle's own services are exercised for real. Favor integration-style tests in your app over mocking ExportManager — your mocks of bundle internals are likely to break against the new structure.
  • Caveat: this assessment is derived from the 1.0.3 changelog; verify exact config keys and class namespaces against the bundle's README before wiring production code.
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.
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
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource