ThinkPHP的控制器是一個類,接受用戶的輸入並調用模型和視圖去完成用戶的需求;控制器層由核心控制器和業務控制器組成,負責應用的調度控制,而業務控制器則由使用者定義的控制器類別完成。
本教學操作環境:Windows7系統、thinkphp v5.1版、Dell G3電腦。
ThinkPHP基於MVC(Model-View-Controller,模型-視圖-控制器)模式,且皆支援多層(multi-Layer)設計。
MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心部件:模型(M)、視圖(V)、控制器(C),它們各自處理自己的任務。
控制器(Controller)層
ThinkPHP的控制器是一個類別。
ThinkPHP的控制器層由核心控制器和業務控制器組成,核心控制器由系統內部的App類別完成,負責應用(包括模組、控制器和操作)的調度控制,包括HTTP請求攔截和轉發、載入配置等。業務控制器則由使用者定義的控制器類別完成。多層業務控制器的實作原理和模型的分層類似,例如業務控制器和事件控制器:
Controller/UserController //用於使用者的業務邏輯控制和排程
Event/UserEvent //用於使用者的事件回應操作
存取控制器Home/Controller/UserController.class.php 定義如下:
namespace Home\Controller; use Think\Controller; class UserController extends Controller{ }
事件控制器Home /Event/UserEvent.class.php 定義如下:
namespace Home\Event; use Think\Controller; class UserEvent extends Controller{ }
UserController負責外部互動回應,透過URL請求回應,例如http://serverName/User/index,而UserEvent負責內部的事件回應,並且只能在內部呼叫:
A('User','Event');
預設的存取控制器層是Controller,我們可以調整設定如下:
'DEFAULT_C_LAYER' => 'Event', // 默认的控制器层名称改为Event
所以是和外部隔離的。
多層控制器的劃分也不是強制的,可以根據應用的需要自由分層。控制器分層裡面可以依需求呼叫分層模型,也可以呼叫不同的分層視圖(主題)。
在MVC三層中,ThinkPHP並不依賴M或V,甚至可以只有C或只有V,這個在ThinkPHP的設計裡面是一個很重要的使用者體驗設計,使用者只需要定義視圖,在沒有C的情況下也能自動辨識。
【相關教學推薦:thinkphp框架】
以上是thinkphp控制器是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!