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!";
});with Regex
$router->get('callback/:[\d]{1,3}', function ($name) {
echo "Hello $name!";
});To call through the Facade / Для вызова через Фасад
Router::get('callback/:name', function ($name) {
echo "Hello $name!";
});with Regex
Router::get('callback/:[\d]{1,3}', function ($name) {
echo "Hello $name!";
});call / вызывает MainController::read
$router->get('read/:id', [MainController::class, 'read']);To call through the Facade / Для вызова через Фасад
Router::get('read/:id', [MainController::class, 'read']);call MainController::read with middleware
$router->get('read/page', [MainController::class, 'read'], ['before' => [Middleware::class]);To call through the Facade / Для вызова через Фасад
Router::get('read/page', [MainController::class, 'read'], ['before' => [Middleware::class]);С параметрами для middleware
$router->get('', [MainController::class, 'read'], [
'before' => [FirstMidddleware::class, [SecondMidddleware::class, ['int' => 456, new \stdClass]]],
'after' => [FirstMidddleware::class, [SecondMidddleware::class, ['int' => 456, new \stdClass]]]
]);call / вызывает MainController::create
$router->post('create/:id', [MainController::class, 'create']);call / вызывает MainController::update
$router->put('update/:id', [MainController::class, 'update']);call / вызывает MainController::update
$router->patch('update/:id', [MainController::class, 'update']);call / вызывает MainController::delete
$router->delete('delete/:id', [MainController::class, 'delete']);call / вызывает MainController::any 'GET|POST|PUT|PATCH|DELETE'
$router->any('any/:id', [MainController::class, 'any']);call / вызывает MainController::read для GET
call / вызывает MainController::create для POST
call / вызывает MainController::update для PUT
call / вызывает MainController::delete для DELETE
$router->resource('api/:id', MainController::class);Изменить методы контроллера по умолчанию можно передав массив с вашими именами
You can change the default controller methods by passing an array with your names
$router->resource('api/:id', MainController::class, ['actionIndex', 'actionAdd', 'actionUpdate', 'actionDrop']);call / вызывает MainController::actionIndex
$router->set(['/test/:id', 'DELETE|PUT', [MainController::class, 'actionIndex'], [
'before' => [First::class, Second::class],
'after' => [[First::class], [Second::class]]
]]);Exemple / Пример Middleware
/**
* Handles requests as a middleware using __invoke().
*/
class SomeMiddleware
{
public function __invoke($next, ...$params)
{
// Logic here
if ($next) {
$next();
}
}
}