可变形/简单路由

一个简单的路由组件

1.1.8-stable 2019-03-26 18:37 UTC

README

一个负责路由的简单组件。

安装

$ composer require morphable/simple-routing

使用

<?php

require __DIR__ . '/vendor/autoload.php';

use \Morphable\SimpleRouting;
use \Morphable\SimpleRouting\Route;

/*
$req = \Morphable\SimpleRouting\Request
$res = \Morphable\SimpleRouting\Response
*/

// A simple route with response
$route = new Route('GET', '/user/:user_id/', function ($req, $res) {
    return $res->sendResponse('UserId = ' . $req->getParam('user_id'), 200);
});

// A POST route with middleware
$route2 = new Route('POST', '/user/:user_id/update', function ($req, $res) {
    return $res->sendResponse('Welcome user 2!');
}, [
    // middlewares
    function ($req, $res) {
        if ($req->getParam('user_id') != 2) {
            return $res->sendResponse('Forbidden', 403);
        }
    }
]);

SimpleRouting::add('user_detail', $route);
SimpleRouting::add('user_update', $route2);

try {
    SimpleRouting::execute();
} catch (\Morphable\SimpleRouting\Exception\RouteNotFound  $e) {
    // catch 404
    die('404');
}

构建器和回调

更好的回调和构建器!

回调现在可以是任何与 call_user_func() 一起工作的东西

use \Morphable\SimpleRouting\Builder;

$route = (new Builder())
        ->setMethod('GET')
        ->setRoute('/user/:userId')
        ->setCallback($callback)
        ->setMiddleware([$callback])
        ->build();

$route = Builder::fromArray([
    'method' => 'GET',
    'route' => '/user/:userId',
    'callback' => $callback,
    'middleware' => $callback
]);

贡献

  • 遵循 PSR-2 和 .editorconfig
  • 以 \Morphable\SimpleRouting 开始命名空间
  • 编写测试