- Is idci/group-action-bundle compatible with Laravel?
- No. It is a Symfony bundle, not a Laravel package, and most of its value comes from bundle registration, DI compiler passes, service tagging and Symfony forms and routing, none of which execute inside Laravel's container. composer require may technically succeed and pull Symfony components transitively, but you would rewrite the controller, form and routing glue and keep only a thin loop over the selected collection. For an Eloquent-based admin screen you are better off implementing the pattern natively.
- What are the requirements and how do I install idci/group-action-bundle?
- Install it with composer require idci/group-action-bundle and register the bundle in your Symfony application's kernel or bundles.php. It targets Symfony and depends on the Form and Routing components, and Doctrine ORM plus Twig are almost certainly assumed for entity lists and rendering. The exact PHP and Symfony version constraints are not stated in the available metadata, so inspect the require block in composer.json before committing to it.
- Which Symfony and PHP versions does GroupActionBundle support?
- That is not stated in the package description or the evaluation data, and the reported release date is future-dated, so release metadata should not be trusted as a health signal. Check the require block in composer.json and run composer why-not to confirm compatibility with your Symfony version. Assume Symfony's form, routing and http-kernel components must be present and version-aligned with what the bundle expects.
- How do I define a custom group action such as bulk delete, export or a status change?
- Actions are defined as reusable services that the bundle resolves and applies to a selection of entities, which is what makes the same behaviour reusable across entity types and contexts. You implement the operation in your own service and register it through configuration so it appears as an available action for the relevant list. The bundle then handles the surrounding form, confirmation step and result handling, keeping that glue out of your CRUD controllers.
- How do I apply one action to multiple selected entities at once?
- You expose the action in the list view, the user selects rows (typically an ids array payload), and the bundle resolves the chosen action service and runs it against that collection. Validate the submitted action key against an allowlist of registered actions before dispatch so arbitrary services cannot be invoked from the request. Authorization is not documented as built in, so scope the entity query yourself and never trust the submitted ids blindly.
- Does GroupActionBundle include a confirmation form and CSRF protection?
- The workflow does: it integrates Symfony's form and routing components so an action can pass through a confirmation step before execution. CSRF protection is inherited from Symfony forms, but verify it is actually enabled on the action route in your own application rather than assuming. Also confirm behaviour on double submit or replay, since a repeated bulk mutation is destructive.
- How is per-entity authorization handled for group actions?
- It is not documented in the available material, and this is the deciding question for production use. If there is no Symfony voter integration, enforce authorization yourself by filtering incoming ids through a policy-scoped query, checking a per-model gate, and aborting the whole batch if any item is denied. Placing an unvetted bulk-mutation endpoint behind only a form login is an IDOR waiting to happen.
- Can large selections be processed asynchronously or in chunks?
- The documented behaviour is a synchronous, in-request loop over the selected entities, and queued or chunked processing is not mentioned. For large selections that means long response times, timeout risk and partial application if something fails mid-batch. If you need scale, dispatch one job per chunk from your own action service instead of relying on the bundle.
- Is it safe to use in production and what are the risks?
- It has zero stars and zero dependents, so there is no community bug discovery, and it is a vendor-owned bundle that appears to be maintained reactively with no visible BC policy or support commitment. Bulk-mutation endpoints are high blast radius: mass assignment, IDOR across the ids payload, CSRF and partial-application data corruption. Combined with unverified version constraints and unreliable release metadata, that is a supply-chain risk disproportionate to the code it saves.
- What is the Laravel-native alternative to GroupActionBundle?
- Build the pattern rather than porting the bundle: define a GroupAction contract exposing key(), label(), authorize(User, Model): bool and handle(Collection $models), plus a registry mapping action keys to implementations. Expose it through a controller that validates the action key against the registry and re-fetches models through an authorized query, then optionally dispatches a queued job per chunk. That is roughly one to two engineer-weeks with tests, versus two to three weeks to port and harden the Symfony bundle.