ray / role-module
Ray.Di 的角色模块
1.0.0
2022-04-05 03:08 UTC
Requires
- php: ^7.3 || ^8.0
- koriym/attributes: ^1.0
- laminas/laminas-permissions-acl: ~2.5
- ray/di: ~2.0
Requires (Dev)
- phpunit/phpunit: ^8.5
README
安装
Composer 安装
$ composer require ray/role-module
模块安装
您需要提供 RoleProvider
。
class AppRoleProvider implements RoleProviderInterface { public function get() { return 'admin'; } }
使用 RoleProvider
安装模块。
use Ray\RoleModule\ZendAclModule; use Ray\Di\AbstractModule; use Laminas\Permissions\Acl\Role\GenericRole; use Laminas\Permissions\Acl\Acl; class AppModule extends AbstractModule { protected function configure() { // @see http://framework.zend.com/manual/current/en/modules/zend.permissions.acl.intro.html $acl = new Acl(); $roleGuest = new GenericRole('guest'); $acl->addRole($roleGuest); $acl->addRole(new GenericRole('staff'), $roleGuest); $acl->addRole(new GenericRole('editor'), 'staff'); $acl->addRole(new GenericRole('administrator')); $this->install(new ZendAclModule($acl, AppRoleProvider::class)); } }
使用方法
简单使用
use Ray\RoleModule\Annotation\RequiresRoles; #[RequiresRoles(['admin'])] class Foo { public function createUser($id) {
您也可以为单个方法添加注解,这具有高于类属性的优先级。
use Ray\RoleModule\Annotation\RequiresRoles; class Foo { #[RequiresRoles(['admin', 'editor'])] public function createUser($id) {
示例
$ php demo/run.php // It works!