Sroute Documentation
Sroute is a lightweight, zero-dependency routing library for PHP. It supports RESTful methods, named routes, middleware, and controller-based routing.
Installation
Section titled “Installation”composer require krag/srouteBasic Usage
Section titled “Basic Usage”Create an index.php file in your project root:
<?php
require __DIR__ . '/vendor/autoload.php';
use Krag\Sroute\Router;
$router = new Router();
$router->get('/', function() { echo "Hello World!";});
$router->load();Advanced Usage
Section titled “Advanced Usage”Sroute supports controller classes, method injection, and middleware.
<?php
use Krag\Sroute\Router;use Controllers\AuthController;use Controllers\PublicController;use Controllers\UserController;use Middleware\AuthMiddleware;use Middleware\GuestMiddleware;use Middleware\CsrfMiddleware;
$router = new Router();
// Register Middleware Aliases$router->aliasMiddleware('auth', AuthMiddleware::class);$router->aliasMiddleware('guest', GuestMiddleware::class);$router->aliasMiddleware('csrf', CsrfMiddleware::class);
// Public Routes$router->get('/', PublicController::class, 'home')->name('landing.home');$router->get('/about', PublicController::class, 'about')->name('landing.about');
// Authentication Routes$router->get('/login', AuthController::class, 'showLogin')->middleware(['guest'])->name('auth.login.get');$router->post('/login', AuthController::class, 'login')->middleware(['csrf', 'guest'])->name('auth.login.post');
// Protected Routes$router->get('/dashboard', UserController::class, 'showDashboard')->middleware(['auth'])->name('dashboard');
// Route with Parameters$router->get('/orders/{id}', OrderController::class, 'show')->middleware(['auth'])->name('orders.show');
// Dispatch the router$router->load();Features
Section titled “Features”- RESTful Verbs: GET, POST, PUT, PATCH, DELETE support.
- Named Routes: Generate URLs for routes using their names.
- Middleware: Chainable middleware support.
- Controller Support: Clean syntax for controller-based routing.
- Zero Dependencies: Lightweight and fast.
API Reference
Section titled “API Reference”get($uri, $callback, $classMethod = null)
Section titled “get($uri, $callback, $classMethod = null)”Register a GET route.
$uri: The URI pattern (e.g.,/users/{id}).$callback: Closure or Controller class name.$classMethod: Method name if$callbackis a class name.
post($uri, $callback, $classMethod = null)
Section titled “post($uri, $callback, $classMethod = null)”Register a POST route.
middleware(array $aliases)
Section titled “middleware(array $aliases)”Attach middleware to the defined route.
name(string $name)
Section titled “name(string $name)”Assign a name to the route for reverse routing.
load()
Section titled “load()”Dispatch the router to handle the current request.