🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 注解路由 新版本提供了一种最简单的路由注册方法(可以完成基本的路由定义),默认关闭,如果需要开启在应用的`app.php`配置文件中设置: ~~~ // 使用注解路由 'route_annotation' => true, ~~~ 然后只需要直接在控制器类的方法注释中定义(通常称之为**注解路由**),例如: ~~~ <?php namespace app\index\controller; class Index { /** * @param string $name 数据名称 * @return mixed * @route('hello/:name') */ public function hello($name) { return 'hello,'.$name; } } ~~~ 请务必注意注释的规范,可以利用IDE生成规范的注释。 >[danger] 该方式定义的路由在调试模式下面实时生效,部署模式则需要使用 `optimize:route` 指令生成路由规则文件。 注意必须严格使用`@route(`(区分大小写,`route`和`(`之间不能有空格),**建议路由定义写在注释最后一段,否则后面需要一个空行**。 然后就使用下面的URL地址访问: ~~~ http://tp5.com/hello/thinkphp ~~~ 页面输出 ~~~ hello,thinkphp ~~~ 默认注册的路由规则是支持所有的请求,如果需要指定请求类型,可以在第二个参数中指定请求类型: ~~~ <?php namespace app\index\controller; class Index { /** * @param string $name 数据名称 * @return mixed * @route('hello/:name','get') */ public function hello($name) { return 'hello,'.$name; } } ~~~ 如果有路由参数和变量规则需要定义,可以直接在后面添加方法,例如: ~~~ <?php namespace app\index\controller; class Index { /** * @param string $name 数据名称 * @route('hello/:name','get') * ->https() * ->pattern(['name' => '\w+']) * * @return mixed */ public function hello($name) { return 'hello,'.$name; } } ~~~ > 注意在添加路由参数和变量规则的最后不需要加`;`,并且确保和后面的其它注释之间间隔一个空行。 支持在类的注释里面定义资源路由,例如: ~~~ <?php namespace app\index\controller; /** * @route('blog') */ class Blog { public function index() { } public function read($id) { } public function edit($id) { } } ~~~