Download the PHP package rubberydub/snout without Composer
On this page you can find all versions of the php package rubberydub/snout. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rubberydub/snout
More information about rubberydub/snout
Files in rubberydub/snout
Informations about the package snout
Snout PHP request router
Snout is a PHP request router.
Contents
- Features
- Installing
- Quick Example
- Controllers
- Routes
- Embedded Parameters
- Sub-Routing
- License
Features
- Flexible controller types.
- Extraction and type casting of embedded parameters.
- Custom embedded parameter types.
- Combinable route sets allowing sub-routing.
Installing
Use Composer.
Quick Example
Controllers
Controllers do not need to be a function. The router does not need to run the controllers. It can simply provide the controllers for the matching route and the embedded parameters for you do use as you please.
Routes
Specifiy routes by creating \Snout\Route
objects. Routes accept an array or Ds\Map
of options:
Name | Type | Description |
---|---|---|
name | string |
A name for the route |
path | string |
The path of the route |
controller | mixed |
Map from HTTP method to controller, or a single controller |
parameters | array\|\Ds\Map |
Optional custom embedded parameters |
sub_router | \Ds\Router |
An optional sub-router |
Example:
Embedded Parameters
The router will match the path exactly, except for embedded parameters, which it will extract.
Embedded parameters are specified in a route's path like so:
For example:
By default there are four embedded parameter types: string
, boolean
, integer
and float
. Extracted parameters are casted to the appropriate type.
Optional/Nullable Parameters
Embedded parameters may be optional or nullable by prefixing the type with ?
like so:
If the parameter is not present or is 'null'
then the extracted parameter will have value null
.
Custom Parameter Types
Custom parameter types are available. Provide them in a routes options like so:
Available Tokens:
Name | Matches |
---|---|
DIGIT |
All digits |
ALPHA |
All letters |
UNDERSCORE |
_ |
HYPHEN |
- |
PERIOD |
. |
COLON |
: |
OPEN_BRACE |
{ |
CLOSE_BRACE |
} |
OPEN_BRACKET |
[ |
CLOSE_BRACKET |
] |
BACK_SLASH |
\ |
Sub-Routing
Routers can be combined to allow sub-routing at a particalar part of the path. Parent router's controllers can be extracted and executed before the sub routing.
License
MIT © Franz Neulist Carroll