Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
53 lines (32 sloc) 1.44 KB

路由

PhpBoot 支持两种形式的路由定义, 分别是通过加载 Controller 类,分析 Annotation ,自动加载路由,和通过 Application::addRoute 方法手动添加路由。

1. 自动加载路由

你可以通过 Application::loadRoutesFromClass 或者 Application::loadRoutesFromPath 添加路由。框架扫描每个类的每个方法,如果方法标记了@route,将被自动添加为路由。被加载类的形式如下:

/**
 * @path /books
 */
class Books
{
    /**
     * @route GET /{id}
     */
    public function getBook($id)
}

以上代码表示 http 请求 GET /books/{id} 其实现为 Books::getBook, 其中{id}为url 的可变部分。

1.1. @path

语法: @path <prefix>

标注在类的注释里,用于指定 Controller 类中所定义的全部接口的uri 的前缀。

1.2. @route

语法: @path <method> <uri>

标注在方法的注释里,用于指定接口的路由。method为指定的 http 方法,可以是 GET、HEAD、POST、PUT、PATCH、DELETE、OPTION、DELETE。uri 中可以带变量,用{}包围。

2. 手动加载路由

你可以使用 Application::addRoute 手动加载路由,方法如下:

$app->addRoute('GET', '/books/{id}', function(Request $request){
    $books = new Books();
    return $books->getBook($request->get('id'));
});

需要注意的是,此方法添加的路由,将不能自动生成接口文档。

You can’t perform that action at this time.