bera / bera-router
A simple php router
v1.1.1
2023-07-10 19:41 UTC
Requires
- symfony/http-foundation: ^6.2
README
A simple php router
Authors
Features
- Simple Interface
- Support for GET, POST, OPTIONS methods
- Custom 404 page support
Installation
Install by using composer
composer require bera/bera-router
Usage
Quick start
Default controller and middleware namespace is set to \app\controllers
and \app\middlewares
which can be set when instantiating the main router object
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();
Using middleware
Setup up the controller and middleware namespace
$router = new \bera\router\Router('\\app\\controllers\\', '\\app\\middlewares\\'); $router->get('/admin/blogs', 'TestController@edit', [ 'before' => ['AuthFilterMiddleware'] ]);
Using params in route
$router->get('/blog/{id}/edit', 'BlogController@edit');
Then inside controller we can access the id like this
namespace app\controllers; class BlogController { public function edit($blog_id) { // edit blog here } }
Route groups
$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'); });
Setup 404 page route handler
$router = new \bera\router\Router(); $router->set404Route('SomeController@handle404');