meowphp / routing
可扩展的路由器
v0.1.0
2021-11-11 20:53 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpstan/phpstan: ^1.1
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
Suggests
- maymeow/cake-attribute-routing: >=v0.2.0
README
使用属性定义路由到方法的可扩展路由器
安装
您可以使用以下命令通过composer安装此库:
composer require meowphp/routing
用法
注册控制器
此路由器需要在数组中静态注册控制器。为此,请在您的应用程序中添加一个包含控制器类字符串的数组。
/** * Register your application's controller here */ $controllers => [ \May\AttributesTest\MainController::class, \May\AttributesTest\Controllers\ExampleController::class ],
定义路由
要定义到操作的路线,请使用您的方法的Route属性。
# Route without attributes #[Route('/hello/{id}/{surname}')] public function sayHello() : string # Route with attributes #[Route("/good-bye")] public function sayGoodBye() : string # Default route #[Route('/')] public function index() : string
获取新的路由器实例
要获取新的路由器,请使用以下脚本。
$router = \Meow\Routing\Router::getRouter($controllers);
解析路由
$calledRoute = $this->router->matchFromUri('/your/route');
获取控制器和操作
上面的代码将返回路由的实例,要获取控制器和操作,请使用以下函数:
$calledRoute->getController(); $calledRoute->getMethod();
获取参数
if ($calledRoute->hasParameters()) { $request = $calledRoute->getParameters(); }
前缀
前缀可以应用于路由器类。应用它们之后,路由器以/{prefix}/{action}开始。因此,您不必将路线定义为/users/action和/users/action-two,而是可以使用前缀和/users,然后为操作定义路由,如/action和/action-two。以下是一个示例:
#[Prefix('/api')] class ExampleController extends AppController
许可证:MIT