eddmann / rootr
本包最新版本(dev-master)没有提供许可证信息。
像老板一样处理路由URL。
dev-master
2014-06-02 12:18 UTC
Requires
- php: >=5.4.0
- jeremeamia/superclosure: dev-multiple-parsers
Requires (Dev)
- hamcrest/hamcrest-php: 1.1.*
- mockery/mockery: @stable
- phpunit/phpunit: 4.1.*
- satooshi/php-coveralls: dev-master
- squizlabs/php_codesniffer: 1.*
This package is not auto-updated.
Last update: 2020-01-06 08:13:31 UTC
README
像老板一样处理路由URL。
安装
获取composer
wget https://composer.php.ac.cn/composer.phar
然后将其添加到项目根目录下的 composer.json
{
"require": {
"eddmann/rootr": "*"
}
}
现在开始安装
php composer.phar install
Closure 示例
<?php $router = new Rootr\Router; $router->get('/', function () { return '/'; }); $router->get('/products', function () { return '/products'; }); $router->get('/products/{id:\d+}', function ($id) { return "/products/$id"; }); $router->get('/products/show/{id:\d+}/{?name}', function ($id, $name = 'na') { return "/products/show/$id/$name"; }); $router->get('/product.json', function () { $product = json_encode([ 'name' => 'Cheese', 'value' => 12.55 ]); return (new Rootr\Response(200, $product))->asJson(); }); $dispatcher = new Rootr\Dispatcher($router); $response = $dispatcher->dispatch('GET', '/products/4'); $response->render(); // /products/4
控制器示例
<?php $router = new Rootr\Router; class ProductController extends Rootr\Controller { public function indexAction() { return '/products'; } /** * @method GET * @route /{id:\d+} */ public function displayByIdAction($id) { return "/products/$id"; } public function showAction($id, $name = 'na') { return "/products/show/$id/$name"; } } $router->get('/', function () { return '/'; }); $router->mountController('/products', 'ProductController'); $dispatcher = new Rootr\Dispatcher($router); $response = $dispatcher->dispatch('GET', '/products/show/2/cheese'); $response->render(); // /products/show/2/cheese
示例
您可以通过运行以下命令使用PHP内置的web服务器来运行示例
./examples.sh