miseak/nette-restfulrouter

Nette Framework 的 Restful 路由器。

dev-master 2013-05-18 10:12 UTC

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'}