A lightweight, simple, yet powerfull routing library for PHP.
- Supports for
DELETE
,GET
,HEAD
,OPTIONS
,PATCH
,POST
andPUT
request verbs. - Routing shortcuts.
Router::DELETE()
,Router::GET()
,Router::HEAD()
, etc.
- Static and dynamic PCRE-based routing.
- Custom
Path
and/orHTTP-Method
call override. - Use of
Path\to\public@method
callback. - Array to API responses.
- Subrouting / route prefixes.
- Subnamespace / namespace prefixes.
Perritu/Router can run just fine out-of-the-box (even without Composer).
The best way to implement is, of course, through composer, yet, it can be implemented without it.
All you need is PHP 8.1 or greater and any URL rewriting technique.
There are 2 ways of install.
- Using composer. (Recomended)
composer require perritu/router
- Direct download.
- Downlad and place the
Router.php
file outside your publicly accessible directory, so any call must be performed throug your code flow. - Do a
require_once
import from your code flow.
require_once(PROJECT_ROOT .'/include/perritu/router.php');
- Downlad and place the
Once imported, do a use
statement to start using the router, then, start with
your routing definitions.
Bare example:
// Require statement
require_once('../vendor/autoload.php'); // Or router.php if not using composer.
use Perritu\Router\Router as R;
R::MATCH(R::ANY, '.*', function(){
if(R::IsApi())
return ['Hello world!'];
echo '<h1>Hello world!</h1>';
}, R::E_PREG);
You can read the documentation in the DOCS.
Codacy: https://app.codacy.com/gh/Perritu/Router/dashboard
Packagist: https://packagist.org/packages/perritu/router
FOSSA: https://app.fossa.com/projects/git%2Bgithub.com%2FPerritu%2FRouter?ref=badge_large