amonger / firewall
v0.4.1
2015-09-02 10:41 UTC
Requires (Dev)
- phpunit/phpunit: ^4.6
README
防火墙
这是一个简单的库,它将在匹配路由时执行一些操作。
它适用于一些遗留项目,在这些项目中,一些授权代码可能被多次粘贴到标题中,而没有底层结构。
示例
###单个路由### 您可以通过以下方式单独定义路由
use \amonger\Firewall\Firewall; $firewall = new Firewall($_SERVER['REQUEST_URI']); $firewall ->route('/managers\/.*/') ->unless(function ($uri) use ($container) { return $container['auth']->hasRole('manager'); }) ->handle(function () { throw new _401Exception(); }) ->execute();
###多个路由### 更可能的情况是您将有一个单个请求URI和多个您想要处理的路由。在这种情况下,您可以使用构建器来设置防火墙。
use \amonger\Firewall\Firewall; $firewall = Firewall::getBuilder(); $firewall->setRequestUri($_SERVER['REQUEST_URI']); $firewall ->route('/managers\/.*/') ->unless(function ($uri) use ($container) { return $container['auth']->hasRole('manager'); }) ->handle(function () { throw new _401Exception(); }); $firewall ->route('/clients\/.*/') ->unless(function ($uri) use ($container) { return $container['auth']->hasRole('clients'); }) ->handle(function () { throw new _401Exception(); }); Firewall::run($firewall);