joydeep-bhowmik / php-router
A PHP router package
1.0.0-stable
2023-10-16 13:10 UTC
Requires
- php: ^8.1
This package is auto-updated.
Last update: 2025-04-17 09:16:59 UTC
README
A simple, lightweight and efficient PHP routing library.
Usage
Setup
- Make sure you have a index.php file in your root directory.
Put this
.htaccess
file in your root directory.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L]
- Composer command
composer require joydeep-bhowmik/php-router
Basic
in your index.php file
require __DIR__ . '/vendor/autoload.php'; use JoydeepBhowmik\PHPRouter\Router; $router = new Router(); $router->get('/', function () { return 'Home'; }); $router->dispatch(); echo Router::$view;
get, post, put, delete , any
$router->get('/', function () { return 'get request'; }); $router->post('/', function () { return 'post request'; }); $router->put('/', function () { return 'put request'; }); $router->delete('/', function () { return 'delete request'; }); $router->any('/', function () { return 'anytype of request'; }); $router->dispatch();
Wildcard route
$router->get('*', function () { return '404 not found'; });
Parameters
$router->get('/profile/{user}/{id}', function ($user, $id) { return 'Username ' . $user . ' and user id is ' . $id; });
Advance
Change base url
$router->baseUrl('/shop');
Calling a controller method
$router->get('/profile/{user}/{id}', [ExampleController::class, 'index']);
Add different request method
$router->addRoute('profile/{user}/{id}', function () { return 'Hello'; }, 'METHOD_NAME');
Middleware
class Example_middleware { public function handle() { return true; } } $router->middleware(Example_middleware::class, function () use ($router) { $router->get('/', function () { return 'Home'; }); }); $router->dispatch()