#### 控制器后綴
為什么會有控制器后綴的概念呢?有兩個原因,首先是如果控制器類不帶后綴,容易產生和關鍵字沖突的情況,例如無法使用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,要注意控制器名和控制器類名的區別。