godisco/acltree-bundle
godisco/acltree-bundle brings hierarchical ACLs to Symfony applications, letting you model resources and permissions as a tree and query access at any node through a lightweight, extensible API. Ideal for content hierarchies, nested categories, and inherited permissions.
composer.json." Zero dependents is the load-bearing signal — nobody has run this in production that we can learn from.symfony/security-acl (deprecated in Symfony 3.0, removed in 4.0). That one fact should close any "let's just pull it in" ticket before an engineer spends a sprint discovering it. The PM outcome is a redirect, not an evaluation.Consider it only if all of the following hold:
Look elsewhere when:
spatie/laravel-permission for grants, kalnoy/nestedset (read-heavy taxonomies) or staudenmeir/laravel-adjacency-list (write-heavy org charts, recursive CTEs) for the tree, and Laravel Gates/Policies to enforce inheritance. Lift exactly one idea from the bundle: a permissions pivot with an explicit inherit boolean.security.yaml, with a tree library for the hierarchy.To executives: godisco/acltree-bundle is a small MIT-licensed Symfony2 bundle for hierarchical entity permissions. It is not a candidate dependency for our Laravel platform — wrong framework, negligible adoption (17 stars, zero dependents), no maintainers of record, and built on an ACL component the PHP ecosystem removed years ago. Its value is as a design reference for any roadmap item involving inherited access (org trees, folder permissions, category rights). Recommendation: do not adopt; budget a small, well-understood first-party implementation on our existing stack. We would have had to fork and own this dependency anyway — so the "buy" option saves nothing and adds abandonment risk to a security-critical code path.
To engineering: Treat the repository as a pattern library, not a dependency. The reusable idea is the composition of a tree-traversal strategy with an ACL resolver that walks ancestors and memoizes effective permissions per request. The implementation does not port — the DI container and Doctrine mapping are load-bearing, and symfony/security-acl is gone. On Laravel, replicate the concept with spatie/laravel-permission + kalnoy/nestedset (or adjacency-list CTEs), enforce inheritance in a single service class behind Gates/Policies, and cache resolved permission sets with invalidation tied to tree-mutation events rather than TTL. Sequence the work after hierarchy move/delete semantics are settled — inheritance rules are meaningless until then.
Proposed next step: a one-week spike whose deliverable is not code but a semantics spec — executable tests for nearest-ancestor resolution, deny/allow precedence, depth limits, and orphaned-subtree behavior. Implement natively against that spec. Instrument the four failure modes that matter: silent privilege escalation, orphaned nodes resolving to nothing or everything, stale cache after a subtree move, and depth-limit truncation. Approve the build only once the spec and its test suite exist.
How can I help you explore Laravel packages today?