PHP code example of rudra / router

1. Go to this page and download the library: Download rudra/router library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

rudra / router example snippets


use Rudra\Router\Router;
use Rudra\Container\Rudra;

$router = new Router(Rudra::run());

use Rudra\Container\Facades\Rudra;  
use Rudra\Router\RouterFacade as Router;
use Rudra\Container\Interfaces\RudraInterface;

Rudra::binding()->set([RudraInterface::class => Rudra::run()]);

$router->get('callback/:name', function ($name) {
    echo "Hello $name!";
});

$router->get('callback/:[\d]{1,3}', function ($name) {
    echo "Hello $name!";
});

Router::get('callback/:name', function ($name) {
    echo "Hello $name!";
});

Router::get('callback/:[\d]{1,3}', function ($name) {
    echo "Hello $name!";
});

$router->get('read/:id', [MainController::class, 'read']);

Router::get('read/:id', [MainController::class, 'read']);

$router->get('read/page',  [MainController::class, 'read'], ['before' => [Middleware::class]);

Router::get('read/page',  [MainController::class, 'read'], ['before' => [Middleware::class]);

$router->get('', [MainController::class, 'read'], [
    'before' => [FirstMidddleware::class, [SecondMidddleware::class, ['int' => 456, new \stdClass]]],
    'after'  => [FirstMidddleware::class, [SecondMidddleware::class, ['int' => 456, new \stdClass]]]
]);

$router->post('create/:id', [MainController::class, 'create']);

$router->put('update/:id', [MainController::class, 'update']);

$router->patch('update/:id', [MainController::class, 'update']);

$router->delete('delete/:id', [MainController::class, 'delete']);

$router->any('any/:id', [MainController::class, 'any']);

$router->resource('api/:id', MainController::class);

$router->resource('api/:id', MainController::class, ['actionIndex', 'actionAdd', 'actionUpdate', 'actionDrop']);

$router->set(['/test/:id', 'DELETE|PUT', [MainController::class, 'actionIndex'], [
        'before' => [First::class, Second::class],
        'after'  => [[First::class], [Second::class]]
]]);

/**
 * Handles requests as a middleware using __invoke().
 */
class SomeMiddleware
{
    public function __invoke($next, ...$params)
    {
        // Logic here

        if ($next) {
            $next();
        }
    }
}