首頁 >php框架 >ThinkPHP >thinkphp控制器是什麼

thinkphp控制器是什麼

青灯夜游
青灯夜游原創
2021-12-27 11:22:432373瀏覽

ThinkPHP的控制器是一個類,接受用戶的輸入並調用模型和視圖去完成用戶的需求;控制器層由核心控制器和業務控制器組成,負責應用的調度控制,而業務控制器則由使用者定義的控制器類別完成。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn