php-router/README.md
Evgeny Zinoviev 0044b0ebf5 fix readme
2019-06-29 05:37:32 +03:00

63 lines
1.4 KiB
Markdown

# php-router
Just another PHP router. Simple and fast.
## Usage
#### Route syntax
`{}` is for enumeration of predefined strings, like: `{value1,value2,value3}`.
`()` is for regular expressions, like: `([\w\d]+)`.
See examples.
#### Code example
```
$router = new router;
// main page, returned value will be `index`
$router->add('/', 'index');
// for `/test2.html`, returned value will be `test_html id=2`
$router->add('/test(\d).html', 'test_html id=$(1)');
// for `/contacts/`, returned value will be `contacts`
$router->add('{contacts,about}/', '${1}');
// for `/section2/123/action1/`, returned value will be 'section section=section2_123 action=action1'
$router->add('{section1,section2}/(\d+)/{action1,action2}/', 'section section=${1}_$(1) action=${2}');
$route = $router->find($_SERVER['DOCUMENT_URI']);
if ($route === false) {
// NOT FOUND
}
// parse value
$route = preg_split('/ +/', $route);
$page = $route[0];
$input = [];
if (count($route) > 1) {
for ($i = 1; $i < count($route); $i++) {
$var = $route[$i];
list($k, $v) = explode('=', $var);
$input[$k] = $v;
}
}
```
## API
`add($route, $value)` - Add route. `$value` is a string in any form.
`find($route)` - Find route. Returns compiled `$value` or `false` if not found.
`dump()` - Returns internal routes tree (for serialization, e.g. for production usage).
`load($tree)` - Loads routes tree, previously returned by `dump()`.
## License
MIT