bit55 / litero
小型Web应用的轻量级路由器和分发器。
0.9.0
2017-08-03 05:19 UTC
Requires
- php: ^7.0 || ^5.6
This package is not auto-updated.
Last update: 2024-09-22 02:23:07 UTC
README
小型Web应用的轻量级路由器和分发器。占用空间小且无额外开销。
本包中的路由器类通过URL模式映射HTTP请求到回调。
注意:该组件默认不支持PSR-7 HTTP消息接口。
安装
在当前目录创建基于Litero的项目
composer create-project bit55/litero .
并将您的应用程序代码添加到composer.json
中的自动加载部分。
或在现有项目中包含Litero
composer require bit55/litero
或下载此存储库并将文件Router.php
包含到您的项目中。
您的Web服务器必须将任何输入URI指向index.php文件。有关Apache和Nginx配置示例,请参阅.htaccess
和example.nginx.conf
。
用法
创建路由器类的实例。
$router = Bit55\Litero\Router::fromGlobals();
添加路由规则。路由规则可以包含精确或通配符规则。
通配符示例
/page/:seg
- 一个段内的任意字符,如/page/qwerty
或/page/123
;/page/:num
- 仅数字,如/page/123
;/page/:any
- 任意字符,如/page/qwerty
或/page/qwerty/123
;
路由处理程序可以是任何可调用对象(函数名、闭包)或包含控制器类名和操作方法的字符串。路由器将自动实例化控制器并执行操作方法。
通配符参数将作为函数参数传递给处理程序。
注意:如果您使用Composer,请将控制器类添加到自动加载中。
使用闭包处理程序添加单个规则
$router->add('/', function () { echo 'Hello from Litero!'; });
或添加路由数组。
$router->add([ '/first' => 'Bit55\Litero\ExampleController@firstAction', '/second/:any' => 'Bit55\Litero\ExampleController@secondAction', ]);
开始路由处理。
if ($router->isFound()) { $router->executeHandler( $router->getRequestHandler(), $router->getParams() ); } else { // Simple "Not found" handler $router->executeHandler(function () { http_response_code(404); echo '404 Not found'; }); }
示例代码请参阅index.php
文件。