企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 控制器后缀 为什么会有控制器后缀的概念呢?有两个原因,首先是如果控制器类不带后缀,容易产生和关键字冲突的情况,例如无法使用public控制器,其次,控制器类和模型类容易产生混淆,例如User控制器类和User模型类,默认不使用控制器后缀,要使用的话开启下面的参数: ~~~ // 控制器类后缀 'controller_suffix' => true, ~~~ controller_suffix参数配置的是布尔值,而不是具体的控制器后缀,开启后,会自动使用`url_controller_layer`配置值作为访问控制器后缀,这个参数默认值是controller,所以再次访问 ~~~ http://tp5.com/index/index/hello ~~~ 的时候,指向的访问控制器为: ~~~ application/index/controller/IndexController.php ~~~ 控制器类定义修改如下: ~~~ <?php namespace app\index\controller; class IndexController { public function hello() { return 'hello,world'; } } ~~~ 注意:开启了控制器类后缀的话,类名和类文件名依然要保持大小写一致。 开启了控制器类后缀的好处是控制器类的命名不受任何关键字约束,例如我们可以定义一个`public`控制器类用于继承, ~~~ <?php namespace app\index\controller; class PublicController { public function base() { return 'base'; } } ~~~ 开启了控制器类后缀,并不会影响当前的控制器名称的获取,当前访问的控制器名称还是Public而不是PublicController,要注意控制器名和控制器类名的区别。