### 多級控制器
當一個模塊下面有較多的控制器之后,就會涉及到控制器分組和分級的管理需求,畢竟一個目錄下面一大堆的控制器看著也難受。
簡單來說就是把原來controller目錄下面的控制器分別放到不同的子目錄下面去,并且在子目錄下面仍然還可以再劃分子目錄,對于這種方式的控制器我們稱之為多級控制器,多級控制器就是一種明確的從屬關系的控制器定義和訪問,舉個例子如果我們要區分訪問前后臺的用戶操作,控制器定義如下:
后臺User控制器:
~~~
<?php
namespace app\index\controller\admin;
class User
{
public function index()
{
return '后臺用戶';
}
}
~~~
前臺User控制器:
~~~
<?php
namespace app\index\controller\home;
class User
{
public function index()
{
return '前臺用戶';
}
}
~~~
前后臺訪問的URL看起來是這樣:
~~~
http://tp5.com/index/home.user/index
http://tp5.com/index/admin.user/index
~~~
home.user和admin.user就表示一個多級控制器調用,如果有更多的控制器層級,就可以用admin.user.blog,如果有強迫癥覺得點號分割不舒服的話,除了使用路由之外,還可以使用控制器自動搜索功能。
以上面的兩個控制器為例,我們在應用配置中修改如下參數:
~~~
// 開啟控制器自動搜索定位
'controller_auto_search' => true,
~~~
接下來我們訪問
`http://tp5.com/index/home/user/index`
系統會自動在控制器目錄下面搜索控制器類文件是否存在,搜索順序依次為
~~~
application/index/controller/Home.php
application/index/controller/home/User.php
~~~
直到搜索到實際的控制器類文件就會停止搜索,因為實際存在User.php控制器類,然后調用index操作方法,所以頁面會輸出:
`前臺用戶`