多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
>[danger] 要使用`Route`类注册路由必须首先在路由定义文件开头添加引用(后面不再重复说明) > ~~~ >use think\facade\Route; 路由是应用开发中比较关键的一个环节,其主要作用包括但不限于: * 让URL更规范以及优雅; * 隐式传入额外请求参数; * 统一拦截并进行权限检查等操作; * 绑定请求数据; * 使用请求缓存; * 路由中间件支持; 路由解析的过程一般包含: * 路由定义:完成路由规则的定义和参数设置; * 路由检测:检查当前的URL请求是否有匹配的路由; * 路由解析:解析当前路由实际对应的操作(方法或闭包); * 路由调度:执行路由解析的结果调度; 掌握路由主要是要掌握路由定义及参数设置,其它环节是由系统自动完成的。 >[danger]路由的主体规划和定义应该尽可能在应用开发前完成,在后期可以进行路由的参数调整和规则增补。 ## 路由定义文件 路由规则的注册必须在应用的路由定义文件中完成。路由定义和检测是针对应用的,因此如果你采用的是多应用模式,每个应用的路由都是完全独立的,并且路由地址不能跨应用(除非采用重定向路由)。 >[info] `route`目录下的任何路由定义文件都是有效的,分开多个路由定义文件并没有实际的意义,纯粹出于管理方便而已。默认的路由定义文件是`route.php`(其实是app.php 不过无所谓路由文件的名字随便定义都能倍加载),但你完全可以更改文件名,或者添加多个路由定义文件。 没有全局路由定义的概念 ~~~ ├─app ├─public ├─route 路由定义目录 │ ├─route.php 路由定义 │ ├─api.php 路由定义 │ └─... 更多路由定义 ~~~ 如果你使用了多应用模式, 那么路由定义文件需要增加应用子目录,类似于下面:(此配置在6.02新版本失效) ~~~ ├─app ├─public ├─route 路由定义目录 │ ├─admin admin应用路由定义目录 │ │ ├─route.php 路由定义文件 │ │ └─... 更多路由定义 ~~~ 或者:推荐 ~~~ ├─admin admin应用目录 │ ├─route 路由定义目录 │ │ ├─route.php 路由定义文件 │ │ └─... 更多路由定义 此方法优先级最高 ~~~ 多应用模式下面,如果你开启了自动多应用,路由的规则是指在URL地址的应用名之后的部分,也就是说URL中的应用名是不能省略和改变的,例如你在`index`应用中定义了路由。 ~~~ Route::rule('hello/:name', 'index/hello'); ~~~ 在没有开启自动多应用的情况下,URL地址是 ~~~ http://serverName/index.php/hello/think ~~~ 一旦你开启了自动多应用,那么实际的URL地址应该是 ~~~ http://serverName/index.php/index/hello/think ~~~ ## **路由配置文件** 路由的配置文件独立为`config`目录下的`route.php`,如果是多应用模式则支持在应用配置的`route.php`设置,请注意路由配置文件和路由定义文件之间的区别。 ## **关闭路由** 如果你的某个应用不需要使用路由功能,那么可以在应用的`app.php`配置文件中设置: ~~~ // 关闭应用的路由功能 'with_route' => false, ~~~ 关闭某个应用的路由。路由关闭后,你只能使用默认的URL解析规则来访问。