Download the PHP package voku/simpleacl without Composer
On this page you can find all versions of the php package voku/simpleacl. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download voku/simpleacl
More information about voku/simpleacl
Files in voku/simpleacl
Package simpleacl
Short Description Simple Access Control List (ACL) for PHP.
License BSD-3-Clause
Homepage https://github.com/alexshelkov/SimpleAcl
Informations about the package simpleacl
Simple Access Control List (ACL) for PHP.
WARNING: this is only a Maintained-Fork of "https://github.com/alexshelkov/SimpleAcl/"
Install
Using composer
Add following in your composer.json:
Manual
Download library and register PSR-0 compatible autoloader.
Usage
Basic usage
Theory
There is 4 kind of objects: Rules, Roles, Resources and Acl which holds list of Rules. Some Rule can grant access for some Role to some Resource.
Create rules
Lets create "View" Rule, and with with it grant access for "User" to "Page" (note: all names are case sensitive):
Add rules
There is not much sense in rules without Acl. So we need to add rules in it. In next example we add few rules in Acl and see whats happens.
They are various way to add rules to Acl, addRule method accepts from one to four arguments, so you can also add rules like this:
Roles and resource inheritance
As you maybe notice in previous example we have some duplication of code, because both "User" and "Admin" was allowed to "View" "SiteFrontend" we added 2 rules. But it is possible to avoid this using roles inheritance.
Inheritance works for resources too.
Using callbacks
You can create more complex rules using callbacks.
Using role and resource aggregates
It is possible to check access not for particular Role or Resource, but for objects which aggregate them. These kind of objects must implement, respectively, SimpleAcl\Role\RoleAggregateInterface and SimpleAcl\Role\ResourceAggregateInterface.
You can use SimpleAcl\Role\RoleAggregate and SimpleAcl\Role\ResourceAggregate as object which allow aggregation.
You can have access to role and resource aggregates in callbacks.
For more help check out wiki pages.