bit55/litero

小型Web应用的轻量级路由器和分发器。

安装: 812

依赖: 0

建议: 0

安全: 0

星标: 17

关注者: 5

分支: 4

开放问题: 0

类型:项目

0.9.0 2017-08-03 05:19 UTC

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配置示例,请参阅.htaccessexample.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文件。