onix-systems-php / hyperf-policy
hyperf 的策略库
v1.2.0
2023-12-05 18:35 UTC
Requires
- php: >=8.1
- hyperf/constants: ^3.1
- hyperf/di: ^3.1
- hyperf/server: ^3.1
- hyperf/testing: ^3.1
- onix-systems-php/hyperf-core: >=1.2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: >=7.0
- swoole/ide-helper: ^4.5|^5.0
Suggests
- swow/swow: Required to create swow components.
README
使用类似 Symfony 的投票者来检查权限
安装
composer require onix-systems-php/hyperf-policy
为了让它工作,你需要
-
基于
OnixSystemsPHP\HyperfPolicy\Policy\AbstractPolicy
创建策略类 -
将
OnixSystemsPHP\HyperfPolicy\Annotation\Policy
注解添加到策略中,并设置其优先级(数字越大越先执行) -
指定你的策略将与哪些类、对象和动作一起工作
-
指定投票逻辑,并返回一个值
PolicyVote::ACCESS_DENIED
- 停止执行,并在getException
方法中抛出指定的异常PolicyVote::ACCESS_GRANTED
- 允许当前操作,并跳过所有后续策略PolicyVote::ACCESS_ABSTAIN
- 转到下一个策略,如果没有策略检查,则允许操作
-
基于
OnixSystemsPHP\HyperfPolicy\Policy\AbstractDataSpecifier
创建数据指定器类 -
将
OnixSystemsPHP\HyperfPolicy\Annotation\DataSpecifier
注解添加到指定器中,并设置其优先级(数字越大越先执行) -
指定你的指定器将与哪些仓库和动作一起工作