byte-Crafter / Router

HTTP Route Manager for MVC Projects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Total Downloads Latest Stable Version License

@MárriosDev

Marrios/Router

HTTP Route Manager for MVC Projects


Guide

Starting

0 - Installing

composer require marrios/router

1 - Using functions

   
use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Set route
$router->get("/helloworld", [function(){ echo "Hello World!";}])->run();
$router->notFound();

When accessing the /helloworld route

   Hello World!

2 - Using Controllers

use App\Controllers\TesteController;

use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Set route
$router->post("/helloworld", [TesteController::class, "helloWorld"])->run();
$router->notFound();

When accessing the /helloworld route

   Hello World!

Parameters

Using dynamic parameters

Dynamic parameters are defined using curly braces { }

* Note: When defining a dynamic route, you must add a parameter to the callback function or in the controller method


Follow the example below using CallBack:

use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Set route
$router->post("/blog/{category}/{id_post}", [ function($param){ echo $param->category;}])->run();
$router->notFound();

When accessing the /blog/video/1323 route

   video

Follow the example below using Controller:

use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Instantiating the route object
$router = new Router();

// Set route
$router->get("/blog/{category}/{id_post}", [TesteController::class, "helloWorld"])->run();
$router->notFound();

Your controller should look like this

class TesteController
{
    public function helloWorld($param)
    {
        echo $param->id_post;
    }
}

When accessing the /blog/video/1323 route

   1323

Middlewares

Implement middlewares


Middleware

class Middleware
{
    public function handle() {
        return true;
    }
}

Routes

use Marrios\Router\HttpRouter;
use Middleware;

$router = new HttpRouter();

// Set route
$router->middleware([Middleware::class])
       ->get("/ok", [function () {echo "OK";}])
       ->run();

When accessing the /ok route

   OK

About

HTTP Route Manager for MVC Projects

License:GNU General Public License v3.0


Languages

Language:PHP 100.0%