olivier127/rbac-bundle
RBAC Bundle brings role-based access control to Laravel apps, letting you define roles and permissions, assign them to users, and enforce authorization via middleware, gates, and Blade directives. A flexible, configurable permission layer for cleaner access management.
rbac-bundle and ships a compiler pass and PHP attributes — hallmarks of a Symfony bundle. Before this enters a Laravel roadmap, confirm it is genuinely Laravel-native (service provider, config publishing, Gate/Policy integration) and not a Symfony package being evaluated by proximity. This is a gating decision, not a detail.#[Attribute] that was applied to an interface — invalid in all PHP versions, fatal only on 8.5. That is a signal about the maturity of the codebase's static analysis and CI matrix, and belongs in a build-vs-buy scorecard.Consider it when:
Look elsewhere when:
For executives: We are evaluating a small open-source library for role-based access control — the mechanism that decides who can see and do what in the product. This release is a maintenance patch: it fixes a crash that would have occurred on the next PHP runtime version and cleans up a deprecation warning. No new features, no breaking changes. The strategic point is not the patch; it is that this is a security-adjacent dependency maintained by a very small team, and adopting it means accepting maintainer risk in exchange for avoiding a build. My recommendation is to treat it as viable for a conventional role model, contingent on confirming it is genuinely Laravel-native and on us assigning an internal owner with an upgrade SLA.
For engineering: v1.1.3 is a forward-compatibility fix — an invalid #[Attribute] on RBACAttributeInterface was removed because PHP 8.5 makes that fatal, plus a compiler-pass deprecation message was dropped. Two asks before we commit: (1) confirm Laravel integration surface — service provider, config publish, Gate/Policy binding — since the packaging looks Symfony-derived; (2) add this dependency to the upgrade matrix and pin it, because we are depending on a single maintainer for an authorization primitive. If we adopt, wrap it behind our own authorization interface so it stays replaceable.
Net PM position: adopt conditionally — pilot on one non-critical surface, verify framework fit and PHP 8.5 behavior in CI, and keep Laravel's native Gate/Policy as the documented fallback.
How can I help you explore Laravel packages today?