laasti / route
League/route 的两步控制器路由。实例化您的控制器,执行一些操作,然后调用控制器方法。
v1.1.1
2016-04-14 14:49 UTC
Requires
- league/container: ~1.3
- league/route: ~1.1
Requires (Dev)
- laasti/stack: ~1.0
Suggests
- laasti/stack: Middlewares to use with laasti/stack are provided by laasti/route.
This package is auto-updated.
Last update: 2024-09-20 23:28:55 UTC
README
PHP League Route 包的高级实现。为 Laasti/Stack 提供两步路由中间件。
不是直接映射到您的控制器,增加了一个中间步骤:使用路由对象来配置当前路由。这个中间步骤可以用于通过授权中间件检查用户是否有权访问路由。
使用来自 The PHP League 的优秀包:League/Route。
安装
composer require laasti/route
用法
当前不支持闭包和函数作为路由,只支持对象。
与 Laasti\Stack 一起使用
$container = new League\Container; $routes = new League\Route\RouteCollection($container); $container->add('Laasti\Route\DefineControllerMiddleware')->withArgument($routes); $routes->setStrategy(new Laasti\Route\ControllerDefinitionStrategy); $request = Symfony\Component\HttpFoundation\Request::create('/test'); $routes->get('/test', 'MyController::display'); $resolver = new Laasti\Stack\ContainerResolver($container); $stack = new Laasti\Stack\Stack($resolver); $stack->push('Laasti\Route\DefineControllerMiddleware'); $stack->push('Laasti\Route\CallControllerMiddleware'); $stack->execute($request);
不与 Laasti\Stack 一起使用
$container = new League\Container; $routes = new League\Route\RouteCollection($container); $routes->setStrategy(new Laasti\Route\ControllerDefinitionStrategy); $request = Symfony\Component\HttpFoundation\Request::create('/test/George'); $routes->get('/test/{name}', 'MyController::display'); $definition = $routes->getDispatcher()->dispatch($request->getMethod(), $request->getPathInfo()); //Pass the request or any arguments to the controller //Calls MyController->display($request); $request->attributes->add($definition->getArguments()); echo $definition->callController($request); //Or, uses route attributes as arguments //Calls MyController->display($name); echo $definition->callController();
贡献
- 复制此项目!
- 创建您的功能分支:
git checkout -b my-new-feature
- 提交您的更改:
git commit -am '添加一些功能'
- 推送到分支:
git push origin my-new-feature
- 提交 pull request :D
历史
查看 CHANGELOG.md 获取更多信息。
致谢
作者:Sonia Marquette (@nebulousGirl)
许可证
在 MIT 许可证下发布。请参阅 LICENSE.txt 文件。