parable-php / routing
Parable Routing is a light-weight and fast url Routing library
1.0.0
2021-03-12 08:50 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpunit/phpunit: ^8.0
- vimeo/psalm: ^4.6
README
Parable Routing is a fast, intuitive url routing library.
Install
Php 8.0+ and composer are required.
$ composer require parable-php/routing
Usage
$router = new Router(); $route1 = new Route( ['GET'], 'simple-route', 'route/simple', [Controller::class, 'actionName'] ); $route2 = new Route( ['GET', 'POST'], 'param-route', 'route/{param}/hello', function (string $param) { echo 'Hello, ' . $username . '!'; } ); $router->addRoutes($route1, $route2); $match = $router->match('GET', 'route/devvoh/hello'); echo $match->getName();
This would echo param-route
.
Routing does not provide a direct way of executing a route, but it's easy enough:
$callable = $match->getCallable(); $callable(...$match->getParameterValues()->getAll());
For more free-form metadata you want to attach to a Route
, you can use metadata:
$route = new Route( ['GET'], 'simple-route', 'route/simple', [Controller::class, 'actionName'], [ 'metadata' => 'enabled' ] ); $route->getMetadataValue('metadata'); // returns 'enabled'
You can use this to add template paths to a route, whether it should be visible to admins only, etc.
Contributing
Any suggestions, bug reports or general feedback is welcome. Use github issues and pull requests, or find me over at devvoh.com.
License
All Parable components are open-source software, licensed under the MIT license.