bera/bera-router

一个简单的PHP路由器

v1.1.1 2023-07-10 19:41 UTC

This package is auto-updated.

Last update: 2024-09-10 22:08:59 UTC


README

一个简单的PHP路由器

作者

特性

  • 简单接口
  • 支持GET, POST, OPTIONS方法
  • 自定义404页面支持

安装

使用composer进行安装

  composer require bera/bera-router

用法

快速开始

默认控制器和中间件命名空间设置为 \app\controllers\app\middlewares,这可以在创建主路由对象时进行设置

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

$router = new \bera\router\Router();

$router->get('/', function($id) {
    echo 'welcome to index page';
});

$router->post('/post/create', function(\Symfony\Component\HttpFoundation\Request $request, \Symfony\Component\HttpFoundation\Response $response) {
    // add new post here
});

$router->dispatch();

使用中间件

设置控制器和中间件命名空间

$router = new \bera\router\Router('\\app\\controllers\\', '\\app\\middlewares\\');


$router->get('/admin/blogs', 'TestController@edit', [
  'before' => ['AuthFilterMiddleware']
]);

在路由中使用参数

$router->get('/blog/{id}/edit', 'BlogController@edit');

然后在控制器内部,我们可以这样访问id

namespace app\controllers;

class BlogController
{
  public function edit($blog_id)
  {
    // edit blog here
  }
}

路由分组

$router->group('/admin', [
    'namespace' => '\\app\\controllers\\admin\\',
    'middlewares' => [
        'before' => [
            'AuthFilterMiddleware'
        ],
        'after' => [

        ]
    ]
], function($router) {
    $router->get('/auth/login', 'AuthController@login');
    $router->post('/auth/logout', 'Auth@logout');
});

设置404页面路由处理器

$router = new \bera\router\Router();
$router->set404Route('SomeController@handle404');