leinc / minichan-router
A minimal router that can be integrated in any project.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:tool
Requires (Dev)
- phpunit/phpunit: 10.4.x-dev
This package is auto-updated.
Last update: 2024-09-25 17:41:07 UTC
README
A minimal router.
Installation
$ composer require leinc/minichan-router
Usage
You can use this router like below
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/',function (Request $request){ echo "Hello World"; }); Router::get('/foo',function (Request $request){ echo "foo route"; }); Router::executeRoutes();
Use Controller instead of callback functions
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/foo/create',[FooController::class,'create']); Router::post('/foo',[FooController::class,'store']); Router::executeRoutes();
However you would be able to use dynamic route parameters
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/bar/{id}',function (Request $request){ echo $request->params()->id; }); Router::get('/foo/{file}',function (Request $request){ echo $request->params()->file; })->where('/foo\/[a-z]+/'); Router::executeRoutes();
Request methods
You can use only this request methods to handle you're api
GET,POST,PUT,PATCH,DELETE,OPTION
Middleware
Create a class for example AuthMiddleware that implements IMiddleware contract
<?php class AuthMiddleware implements IMiddleware { public function handle(IRequest $request,Callable $next) { if(!isset($_SESSION['admin']) && $_SESSION['admin'] !== 'test'){ header("Location:/"); exit(); } $next($request); } }
After middleware has been created you should register it on you're router
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/foo',function (Request $request){ // your code })->middleware([AuthMiddleware::class]); Router::executeRoutes();