parable-php/routing

Parable Routing is a light-weight and fast url Routing library

1.0.0 2021-03-12 08:50 UTC

This package is auto-updated.

Last update: 2024-12-12 23:40:53 UTC


README

Workflow Status Latest Stable Version Latest Unstable Version License

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.