绑定路由
您正在阅读旧版文档,新版文档已迁移至 [https://document.pescms.com]
目录
完成切片的编写后,我们需要对创建的切片进行路由绑定。否则切片永远不会生效。将程序定位到根目录\Slice\registerSlice.php文件并用编辑器打开。在本文件中,大概32行起(必须在本文件中 use \Core\Slice\InitSlice as InitSlice;后一行进行路由绑定),编写路由绑定事件。
registerSlice.php文件中已经编写了完整的使用注释。在这里我直接引入该文本的内容:
InitSlice::any/get()/post()/put()/delete()
程序提供五个方法声明切片绑定的请求类型: any, get, post, put, delete 。依次为:所有请求类型,GET请求,POST请求,PUT请求,DELETE请求。具体参考《RESTful》
参数 | 说明 | 备注 |
---|---|---|
绑定路由规则 | 绑定控制器路由规则。为空则对全局控制器路由生效。 不为空,则依次填写 组-模型-方法。 填写组,则绑定组路由下所有方法。如此类推 | 参数可以为字符串或者数组 |
绑定的切片 | 切片的命名空间。相对于当前Slice目录。不需要填写空间名Slice,如:\Slice\Common\Auto,则填写\Common\Auto 注:切片是按照由上至下的顺序进行注册。 | 参数必须为数组 |
不触发切片运行的路由规则 | 不参与绑定的路由规则。和参数一一样。可以不填写 | 参数可以为字符串或者数组 |
示例代码:
<?php use \Core\Slice\InitSlice as InitSlice; InitSlice::any(['Home', 'Home-Index'], ['\Common\Authenticate']); //路由Home, Home-index 绑定 \Common\Authenticate InitSlice::any('Admin-Setting-index', ['\Common\Authenticate']); //路由Admin-Setting-index 绑定\Common\Authenticate InitSlice::any('Admin', ['\Admin\Login'], ['Admin-Login']); //路由Admin 绑定\Admin\Login 但Admin-login不会被绑定
路由陷阱
切片虽好,可容易出现陷阱。为什么这么说呢?如:我某一切片绑定的路由为User。而在其他分组的情况下,若也存在User控制器,那么切片将会连同触发。如:Home-User、Admin-User……因此,在复杂的项目结构中,切片的绑定尽量最得明确点,避免因为松散的规则导致路由陷阱的产生。