marekskopal/router

league/route 路由器的属性扩展

v1.0.1 2024-04-06 15:17 UTC

This package is auto-updated.

Last update: 2024-09-08 14:53:25 UTC


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(或 RouteGetRoutePostRoutePutRouteDelete...)属性。

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
    {
    }
}