liamrabe / basic-router
A basic router
v2.1.2
2022-09-17 14:28 UTC
This package is auto-updated.
Last update: 2025-04-20 05:47:51 UTC
README
A basic router
Basic Install
composer require liamrabe/basic-router
Basic usage
use LiamRabe\BasicRouter\Middleware\AbstractMiddleware; use LiamRabe\BasicRouter\Controller\AbstractErrorController; use LiamRabe\BasicRouter\DataCollection\Response; use LiamRabe\BasicRouter\DataCollection\Request; use LiamRabe\BasicRouter as Router; class APIMiddleware { public static function handle() { return true; } } class AppMiddleware { public static function handle() { return true; } } function handleRoute(Request $request, Response $response): Response { $response->setHeader('Content-Type', 'text/html'); $response->setBody('Hello, world!'); $response->setStatus(200); return $response; } try { /** setErrorController & setMiddleware are required before adding routes */ Router::setErrorController(ErrorController::class, 'handleError'); Router::setMiddleware(AppMiddleware::class, 'handleRequest'); Router::redirect('/', '/home'); Router::get('/home', 'handleRoute'); Router::put('/home', 'handleRoute'); Router::post('/home', 'handleRoute'); Router::delete('/home', 'handleRoute'); Router::all('/home', 'handleRoute'); Route::group('/api', static function() { /** Added route will have URI '/api/v1/customer' */ Route::get('/v1/customers', 'handleRoute'); }, [APIMiddleware::class, 'handleRequest']); Router::run(); } catch (Exception $ex) { echo $ex->getMessage(); }
Basic Documentation
BasicRouter supports GET
, PUT
, POST
and DELETE
Basic HTTP Methods
All
/** Use this if you want to register a route on all HTTP methods */ Router::all('/', [AbstractController::class, 'handleRoute']);
GET
Router::get('/', [AbstractController::class, 'handleRoute']);
PUT
Router::put('/', [AbstractController::class, 'handleRoute']);
POST
Router::post('/', [AbstractController::class, 'handleRoute']);
DELETE
Router::delete('/', [AbstractController::class, 'handleRoute']);
Basic General methods
Redirect
/** Redirect route '/' to '/home' with response code 301 */ Router::redirect('/', '/home', 301);
Regex URI
You can define regex directly on the URI
Format: {[PARAMETER_NAME]:[REGEX_PATTERN]}
Example:
/** Regex on route doesn't need parenthesis will be applied at runtime */ Router::get('/api/customers/{customer_id:[a-zA-Z0-9]+}', 'handleRoute');
Function | Returns |
---|---|
Router::getMethod() | string - $_SERVER['REQUEST_METHOD'] |
Router::getUri() | string - $_SERVER['REQUEST_URI'] |
Router::getSemVer() | string - 1.0.0 |
Router::getMajor() | int - 1 |
Router::getMinor() | int - 0 |
Router::getPatch() | int - 0 |