rodri/simple-router

一个简单的API应用路由器。

v1.3.3-alpha 2021-07-28 11:13 UTC

This package is auto-updated.

Last update: 2024-09-05 08:32:00 UTC


README

API应用的路由器 - 它是一个简单的路由构建器,使定义路由的过程更加简单和快速。

安装

composer require rodri/simple-router:1.1.2-alpha

它是如何工作的?

查看维基: https://github.com/Rod1Andrade/simple-router/wiki

  • 实例化新的Router时,必须设置控制器命名空间。
  • 为路由器传递参数时,只需将参数命名为 :。例如:/hello/:id,在这种情况下,:id将被替换为请求传递的值。
  • 设置路由器时,必须以条杠 / 开头,但不需要结尾。
  • 任何动词方法的第一参数是一个数组 [],数组的第一元素需要是路由名称。其他元素有自己的关联名称,如 ['middleware' => 'MiddlewareClass']
  • 可以为单个路由或一组路由添加一个或多个中间件。对于单个中间件使用 ['middleware' => 'NameMiddlewareClass'],对于多个中间件使用 ['middleware' => ['OneMiddleware', 'AnotherMiddleware', 'OneMoreMiddleware']

示例

use Rodri\SimpleRouter\Helpers\Header;
use Rodri\SimpleRouter\Router;

# Application Routers
$router = new Router();

$router->headerConfigs([
    Header::APPLICATION_JSON_UTF8,
]);

$router->setControllerNamespace('Rodri\SimpleRouter\Controllers');
$router->setMiddlewareNamespace('Rodri\SimpleRouter\Middlewares');

$router->debug(true);

# Routers without group
$router->get(['/hello'], 'HelloControllerExample#hello');
$router->get(['/hello/message/:id'], 'HelloControllerExample#helloByMessage');
$router->post(['/post'], 'HelloControllerExample#postTest');
$router->put(['/post'], 'HelloControllerExample#postTest');
$router->patch(['/post'], 'HelloControllerExample#postTest');
$router->delete(['/post'], 'HelloControllerExample#postTest');

# Router with group
$router->group(['/group/test'], function (Router $router) {
    $router->get([''], 'HelloControllerExample#hello');
    $router->get(['/:id'], 'HelloControllerExample#helloByMessage');
    $router->post([''], 'HelloControllerExample#postTest');
});

$router->group(['/group'], function (Router $router) {
    $router->get([''], 'HelloControllerExample#hello');
    $router->get(['/:id'], 'HelloControllerExample#helloByMessage');
    $router->post([''], 'HelloControllerExample#postTest');
});

# Router with a group and middleware
$router->group(['/request', 'middleware' => 'OtherMiddleware'], function (Router $router) {
    $router->get(['/get', 'middleware' => 'FailedMiddleware'], 'RequestController#get');
    $router->post(['/post'], 'RequestController#post');
});

# Group Route with middlewares
$router->group(['/request', 'middleware' => ['OtherMiddleware', 'GetMiddleware']], function (Router $router) {
    $router->get(['/get', 'middleware' => 'FailedMiddleware'], 'RequestController#get');
    $router->post(['/post'], 'RequestController#post');
});

# ALone router with middlewares
$router->get(['/aloneGet', 'middleware' => ['GetMiddleware', 'OtherMiddleware', 'FailedMiddleware']], 'RequestController#get');

# Execution of set router
$router->dispatch();

许可

MIT