bera/bera-router

A simple php router

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

This package is auto-updated.

Last update: 2024-05-10 21:26:54 UTC


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');