gaetanroger / slim-routes-loader
使用简单的配置文件注册您的Slim路由。
0.2
2017-11-25 00:00 UTC
Requires
- psr/log: ^1.0
- slim/slim: ^3.9
- symfony/yaml: ^3.3
Requires (Dev)
- php-coveralls/php-coveralls: ^1.0
- phpunit/phpunit: ^6.4
This package is not auto-updated.
Last update: 2024-09-29 05:01:39 UTC
README
当使用 Slim PHP 框架 时,您需要注册您的路由。这个库允许您通过简单的配置文件来实现。
如何安装
使用composer是最简单的方法。
composer require gaetanroger/slim-routes-loader
您始终可以从这个仓库获取源代码,并在您的项目中手动安装。
如何使用
有关要遵循的语法的更多信息,请参阅 语法和规则。
常规PHP数组格式
使用常规PHP关联数组编写您的路由,然后使用Loader
类来导入。
$routes = [ 'pattern' => '', 'routes' => [ [ 'pattern' => '/', 'method' => 'GET', 'callable' => 'myCallable', 'name' => 'optianalName', ], ], ]; $slim = new \Slim\App(); $loader = new Gaetanroger\SlimRoutesLoader\Loader($routes); $loader->load($slim); // or $loader($slim)
如果您想将路由存储在另一个文件中,只需使用常规PHP require
来包含它们。
$routes = require __DIR__ '/myRoutes.php'; $slim = new \Slim\App(); $loader = new \Gaetanroger\SlimRoutesLoader\Loader($routes); $loader($slim); // or $loader->load($slim)
Json格式
如果您更喜欢以Json编写路由,只需使用JsonLoader
。
{ "pattern": "", "routes": [ { "pattern": "/", "method": "GET", "callable": "testCallable", "name": "testName" } ] }
$slim = new \Slim\App(); $loader = new \Gaetanroger\SlimRoutesLoader\JsonLoader($json); $loader($slim); // or $loader->load($slim)
$json
变量可以包含一个json字符串或包含路由的json文件的路径。
Yaml格式
如果您更喜欢以Yaml编写路由,只需使用YmlLoader
。
pattern: routes: - pattern: / method: GET callable: testCallable name: testName
$slim = new \Slim\App(); $loader = new \Gaetanroger\SlimRoutesLoader\YmlLoader($yml); $loader($slim); // or $loader->load($slim)
$yml
变量可以包含一个Yaml字符串或包含路由的Yaml文件的路径。
语法和规则
无论您选择哪种格式,加载器都需要一定的语法。
有关特定点的更多信息,请参阅 Slim 文档。
路由语法
pattern
:路由模式method
:等待的路由的HTTP方法(GET、POST等)callable
:当到达路由时要调用的函数/方法/可调用对象name
:(可选)路由的名称
组语法
pattern
:组模式routes
:包含其他组或路由的数组
一般规则
- 顶级元素必须是一个组(通常使用空模式,除非您想为所有路由添加前缀)
- 模式可以留空。
示例
PHP数组语法
$routes = [ 'pattern' => '', 'routes' => [ [ 'pattern' => '/one', 'method' => 'GET', 'callable' => 'testCallable1', 'name' => 'testName1', ], [ 'pattern' => '/two', 'method' => 'POST', 'callable' => 'testCallable2', 'name' => 'testName2', ], [ 'pattern' => '/group', 'routes' => [ [ 'pattern' => '/one', 'method' => 'GET', 'callable' => 'testCallable1', 'name' => 'testName1', ], [ 'pattern' => '/two', 'method' => 'POST', 'callable' => 'testCallable2', 'name' => 'testName2', ], ], ], ], ];
Json语法
{ "pattern": "", "routes": [ { "pattern": "/one", "method": "GET", "callable": "testCallable1", "name": "testName1" }, { "pattern": "/two", "method": "POST", "callable": "testCallable2", "name": "testName2" }, { "pattern": "/group", "routes": [ { "pattern": "/one", "method": "GET", "callable": "testCallable1", "name": "testName1" }, { "pattern": "/two", "method": "POST", "callable": "testCallable2", "name": "testName2" } ] } ] }
Yaml语法
pattern: routes: - pattern: /one method: GET callable: testCallable1 name: testName1 - pattern: /two method: POST callable: testCallable2 name: testName2 - pattern: /group routes: - pattern: /one method: GET callable: testCallable1 name: testName1 - pattern: /two method: POST callable: testCallable2 name: testName2';