marciodojr / slim-route-annotations
在控制器/动作中编写精简的路由
v1.0.0
2018-11-18 11:47 UTC
Requires
- doctrine/annotations: ^1.6
- slim/slim: ^3.11
Requires (Dev)
- phpunit/phpunit: ^7.4
This package is auto-updated.
Last update: 2024-09-19 01:01:36 UTC
README
允许您从控制器和动作中的注释创建路由
如何使用
安装
composer require marciodojr/slim-route-annotations
配置
在您的设置数组中添加键 routeAnnotations。每个 routeAnnotations 数组中的元素都是一个关联数组,包含
- dir:控制器/动作所在的目录
- namespacePrefix:您控制器/动作的命名空间前缀。例如,对于类
SomeVendor\\Controller\\MyNiceController
,namespacePrefix 是SomeVendor\\Controller
。
<?php // settings.php return [ 'settings' => [ 'displayErrorDetails' => true, // ... // add this 'routeAnnotations' => [ [ 'dir' => __DIR__ . '/Action', // action/controller folder 'namespacePrefix' => 'Mdojr\\SlimAnnotations\\Test\\Action' // action/controller namespace prefix ] ] ] ];
将 Slim\App
替换为 Mdojr\SlimAnnotations\App
<?php // index.php // $app = new Slim\App($config) $app = new Mdojr\SlimAnnotations\App($config)
注意:当使用 routerCacheFile 选项时,您需要先删除缓存文件。如果文件存在,则不会解析注释。
用法
将 @Route 注释添加到您想绑定路由的方法。属性 methods 和 middlewares 是可选的,如果未指定属性 methods,则允许所有方法(类似于 Slim 中的 $app->any
)。
<?php namespace Mdojr\SlimAnnotations\Test\Action; use Mdojr\SlimAnnotations\Annotation\Route; class MyController { /** * @Route( * pattern="/test-annotated-middleware", * methods={"GET"}, * middlewares={ * "Mdojr\SlimAnnotations\Test\Middleware\SomeMiddleware", * "Mdojr\SlimAnnotations\Test\Middleware\SomeOtherMiddleware" * } * ) */ public function myAction($request, $response) { // some code ... } }
测试
vendor/bin/phpunit --testdox