Download the PHP package kittenphp/router without Composer
On this page you can find all versions of the php package kittenphp/router. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package router
introduce
The kitten Router is a Lightweight and easy to use library.It is based on a mature symfony/routing component
It has the following features:
- Write routing with similar laravel writing, coding friendly and intuitive.
- No constraint controller and middleware,You can define it the way you want it.
- Do not process HTTP requests, only responsible for routing filtering, So you can choose the framework very freely, such as zend-diactoros、symfony/http-foundation.
Installation
Install via composer
composer require kittenphp/router
Usage
Quick Start
Defining routes
Sometimes you may need to register a route that responds to multiple HTTP verbs. You may do so using the match method.
$router->match(['GET','POST'],'/page','PageController@index');
$callback can be of any type, such as string,arrays,closures and so on.
The following is a complete code example that sets $callback to closures:
Regular Expression
To match a path by using a regular expression
$router->get('/article/{id}','ArticleController@get')->where(['id'=>'[0-9]+']);
You can match multiple snippets in your code:
$router->get('/article/{year}/{month}','ArticleController@get')->where(['year'=>'[0-9]{4}','month'=>'[0-9]{2}']);
The RouteResult class can get the value of the parameter matching the path
Route Groups
By routing Groups to share some of the attributes, such as url, middleware and so on.
Routing Groups can be nested at multiple levels
Middleware
Kitten Router does not limit how you implement middleware processing,You can easily apply it in own framework,For example:StackPHP,PSR-7...
Get middleware for matching routes
Middleware can also be defined in routing nodes
$router->get('/admin','Admin@index')->middleware('Auth');
You can define multiple middleware at the same time, only need to pass an array as a parameter
Generate a URL
To generate a URL path by the name of the route