路由
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'));
});
需要注意的是,此方法添加的路由,将不能自动生成接口文档。