miseak / nette-restfulrouter
Nette Framework 的 Restful 路由器。
dev-master
2013-05-18 10:12 UTC
Requires
- nette/nette: 2.1.*
This package is not auto-updated.
Last update: 2024-09-28 13:19:58 UTC
README
这是 Nette Framework 的简单 Restful 路由器的实现。它提供了一个简单的接口来为任何 HTTP 方法创建路由。
它还提供了 URL 构建!
安装
最佳方式是使用 Composer 安装。
//composer.json
{
"require": {
"misiak/nette-restfulrouter": "dev-master"
}
}
然后运行 composer install
定义路由
<?php
use Misiak\Application\Routers\Router;
use Misiak\Application\Routers\Route;
$router = new Router;
// create route only for http get method
$router->get('<presenter>/<action>', 'Homepage:default');
// create route only for http post method
$router->post('api/users', 'Users:default');
//$router->put(..., ...);
//$router->delete(..., ...);
// create route for any http method
$router->any('<presenter>/<action>', 'Homepage:default');
// create route only for given methods
$router->matching('get|post', '<presenter>/<action>', 'Homepage:default');
// or
$router->matching(['get', 'post'], '<presenter>/<action>', 'Homepage:default');
// or as in classic "nette" way
$router[] = new Route('get|post', '<presenter>/<action>', 'Homepage:default');
生成 URL(Latte,...)
如果你有一个针对 POST HTTP 方法的路由,并且想要使用 $presenter->link(...) 创建 URL,可能会出现 URL 构建问题。这可以通过简单地为你的链接定义 _method
参数来避免。
<?php
// we have route
$route = new Route('post', '/api/users', 'Homepage:default');
// we want to generate link for this route
$presenter->link('Homepage:default'); //this won't generate url! because it is for GET methods
// use this!
$presenter->link('Homepage:default', ['_method' => 'post']);
在 Latte 模板中,只需使用 {link Homepage:default, '_method' => 'post'}