bera / bera-router
一个简单的PHP路由器
v1.1.1
2023-07-10 19:41 UTC
Requires
- symfony/http-foundation: ^6.2
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');