marekskopal / router
league/route 路由器的属性扩展
v1.0.1
2024-04-06 15:17 UTC
Requires
- php: >=8.1
- league/route: ^5.1|dev-php8
- nette/utils: ^4.0
- psr/simple-cache: ^1.0|^2.0|^3.0
Requires (Dev)
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10.2
- slevomat/coding-standard: ^8.14
- spatie/ray: ^1.39
README
安装
composer require marekskopal/router
使用
使用 RouterBuilder
创建 Router
实例,并设置控制器或操作的类目录。可选地,您可以设置用于缓存路由的 CacheInterface
实例。
use MarekSkopal\Router\Builder\RouterBuilder; $router = (new RouterBuilder()) ->setClassDirectories([__DIR__ . '/../Controllers']) ->setCache(new Cache()) // optional ->build();
在您想要路由到的类或方法上添加 Route
(或 RouteGet
、RoutePost
、RoutePut
、RouteDelete
...)属性。
use MarekSkopal\Router\Attribute\Route; use MarekSkopal\Router\Attribute\RoutePost; class MyController { #[Route('GET', '/api/my/name')] public function getName(): void { } #[RoutePost('/api/my/address')] public function postAddress(): void { } }
use MarekSkopal\Router\Attribute\RouteGet; #[RouteGet('/api/my/action')] class MyAction { public function __invoke(): void { } }