绑定路由

目录

完成切片的编写后,我们需要对创建的切片进行路由绑定。否则切片永远不会生效。将程序定位到根目录\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……因此,在复杂的项目结构中,切片的绑定尽量最得明确点,避免因为松散的规则导致路由陷阱的产生。

PESCMS DOC 文档系统
© Copyright 2015-2021. by the PESCMS DOC
耗时0.0257秒