A simple php router
- Simple Interface
- Support for GET, POST, OPTIONS methods
- Custom 404 page support
Install by using composer
composer require bera/bera-router
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();
Setup up the controller and middleware namespace
$router = new \bera\router\Router('\\app\\controllers\\', '\\app\\middlewares\\');
$router->get('/admin/blogs', 'TestController@edit', [
'before' => ['AuthFilterMiddleware']
]);
$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
}
}
$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');
});
$router = new \bera\router\Router();
$router->set404Route('SomeController@handle404');