Skip to main content
Version: 2.3 (Latest)

Upgrading from v1 to v2

LmcRbac v2 is a major version upgrade with many breaking changes that prevent straightforward upgrading.

Namespace change​

The namespace has been changed from LmcRbac to Lmc\Rbac.

Please review your code to replace references to the LmcRbac namespace by the Lmc\Rbac namespace.

LmcRbac is based on laminas-permissions-rbac​

LmcRbac is now based on the role class and interface provided by laminas-permissions-rbac which provides a hierarchical role model only.

Therefore the Role, HierarchicalRole classes and the RoleInterface and HierarchicalRoleInterface have been removed in version 2.

The PermissionInterface interface has been removed as permissions in laminas-permissions-rbac as just strings or any objects that can be casted to a string. If you use objects to hold permissions, just make sure that the object can be casted to a string by, for example, implementing a __toString() method.

Refactoring the factories​

The factories for services have been refactored from the LmcRbac\Container namespace to be colocated with the service that a factory is creating. All factories in the LmcRbac\Container namespace have been removed.

Refactoring the Assertion Plugin Manager​

The AssertionContainer class, interface and factory have been replaced by AssertionPluginManager class, interface and factory.