中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkphp基于什么模式

發布時間:2022-02-15 15:35:54 來源:億速云 閱讀:452 作者:iii 欄目:編程語言

這篇文章主要介紹“thinkphp基于什么模式”,在日常操作中,相信很多人在thinkphp基于什么模式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”thinkphp基于什么模式”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

thinkphp是mvc模式。ThinkPHP基于MVC模式,并且均支持多層(multi-Layer)設計,是一個為了簡化企業級應用開發和敏捷WEB應用開發而誕生的開源輕量級PHP框架。

本教程操作環境:Windows7系統、thinkphp v5.1版、Dell G3電腦。

ThinkPHP基于MVC模式,并且均支持多層(multi-Layer)設計。

ThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協議發布,從Struts結構移植過來并做了改進和完善,同時也借鑒了國外很多優秀的框架和模式,使用面向對象的開發結構和MVC模式,融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式。

M(model)– 模型類

模型

在ThinkPHP中基礎的模型類就是Think\Model 類,該類完成了基本的CURD、ActiveRecord模式、連貫操作和統計查詢,一些高級特性被封裝到另外的模型擴展中。

注意: 基礎模型類的設計非常靈活,甚至可以無需進行任何模型定義,就可以進行相關數據表的ORM和CURD操作,只有在需要封裝單獨的業務邏輯的時候,模型類才是必須被定義的。

模型定義

模型類并非必須定義,只有當存在獨立的業務邏輯或者屬性的時候才需要定義。

模型類通常需要繼承系統的\Think\Model類或其子類,下面是一個Home\Model\UserModel類的定義:

    namespace Home\Model;
    use Think\Model;
    class UserModel extends Model{
    }

模型類的作用大多數情況是操作數據庫,按照系統的規范來命名模型類的話,大多數情況下是可以自動對應數據表的。

模型名約定對應數據表(假設數據表的前綴定義是think_)
UserModelthink_user
UserTypeModelthink_user_type

V(view)– 視圖層

模板定義

每個模塊的模塊文件是獨立的,為了對模塊文件更加有效的管理,ThinkPHP對模塊文件進行目錄劃分,默認的模板文件定義規則是:

視圖目錄/[模塊主題/]'控制器名/操作名/操作名+模板后綴

默認的視圖目錄是模塊的View目錄(模塊可以有多個視圖文件目錄),框架的默認視圖文件后綴是.html

在每個模塊主題下面,是以模塊下面的控制器名為目錄,然后是每個控制器的具體操作模板文件,如:
User控制器的add操作 對應的模塊文件就應該是:
./Application/Home/View/User/add.html
如果默認視圖層不是View,設置如:
'DEFAULT_V_LAYER'=>'Template',//設置默認的視圖層名稱,對應的模板文件就變成了:./Application/Home/Template/User/add.html
模板文件的默認后綴是.html,可以通過TMPL_TEMPLATE_SUFFIX來配置。
'TMPL_TEMPLATE_SUFFIX'=>'.tpl'
定義后,User控制器的add操作 對應的模板文件就變成是:./Application/Home/View/User/add.tpl

模板主題

模板主題可以對相同的控制器輸出進行不同的布局和樣式調整
一個模塊需要支持多套模板文件的話,就可以使用模板主題功能。默認情況下,沒有開啟模板主題功能,如果需要開啟,設置DEFAULT_THEME參數即可:

// 設置默認的模板主題
'DEFAULT_THEME'=>'default'

采用模板主題后,需要在視圖目錄下面創建對應的主題目錄,和不啟用模板主題的情況相比,模板文件只是多了一層目錄:

View/User/add.html //沒有啟用模板主題之前
View/default/User/add.html //啟用模板主題之后

在視圖渲染輸出之前,我們可以通過動態設置來改變需要使用的模板主題。

//在控制器中動態改變模板主題
$this->theme('blue')->display('add');

模板賦值

如果要在模板中輸出變量,必須在控制器中把變量傳遞給模板,通過assign方法對模板變量賦值

$this->assign('name',$value);//下面的寫法是等效的
$this->name=$value;

assign方法必須在displayshow方法之前調用,并且系統只會輸出設定的變量,其他變量不會輸出(系統變量例外)。

系統變量可以通過特殊的標簽輸出,無需賦值模板變量

賦值后,就可以在模板文件中輸出變量,如果使用的是內置模板的話,就可以這樣輸出:{$name}
輸出多個模板變量,可以使用下面的方式:

$array['name'] = 'thinkphp';
$array['email'] = 'fdsf@123.com';
$array['phone'] = '123456789';
$this->assign($array);

模板渲染

模板定義后就可以渲染模板輸出,系統也支持直接渲染內容輸出,模板賦值必須在模板渲染之前操作。

渲染模板

渲染模板輸出最常用的是使用display方法,調用格式:
display('[模板文件]'[,'字符編碼'][,'輸出類型'])模板文件的寫法支持下面幾種:

用法描述
不帶任何參數自動定位當前操作的模板文件
[模塊@][控制器:][操作]常用寫法,支持跨模塊 模板主題可以和theme方法配合
完整的模板文件名直接使用完整的模板文件名(包括模板后綴)

eg.

//不帶任何參數 自動定位當前操作的模板文件
$this->display();

通常默認的視圖目錄是View

如果沒有按照模板定義的規則來定義模板文件(或者需要調用其他控制器下面的某個模板),使用:

//表示調用當前控制器下面的edit模塊
$this->display('edit');
//表示調用Member控制器下面的read模塊
$this->display('Member:read');

如果我們使用了模板主題功能,那么也可以支持主題調用,使用:

\\表示調用blue主題下面的User控制器的edit模塊
$this->theme('blue')->display('User:edit');

獲取模板地址

T函數用于生成模板文件名,用法:
T([資源://][模塊@][主題/][控制器/]操作,[視圖分層])
T函數的返回值為一個完整的模板文件名,可以直接用于display和fetch方法進行渲染輸出。
eg.

T('Public/menu');
//返回 當前模塊/View/Public/menu.html
T('blue/Public/menu');
//返回 當前模塊/View/blue/Public/menu.html
T('Public/menu','Tpl');
//返回 當前模塊/Tpl/Public/menu.html
T('Admin@Public/menu');
//返回 Admin/View/Public/menu.html

在display方法中直接使用T函數

//使用T函數輸出模板
$this->display(T('Admin@Public/menu'));

T函數可以輸出不同的視圖分層模塊。

獲取內容

如果需要獲取渲染模板的輸出內容而不是直接輸出,可以使用fetch方法。
eg.
$content = $this->fetch('Member:edit');
使用fetch方法獲取渲染內容后,可以進行過濾和替換等操作。

 渲染內容

如果沒有定義任何模板文件,或者把模板內容存儲到數據庫的話,就需要使用show方法來渲染輸出。

show方法調用格式:
show(‘渲染內容’[,’字符編碼’][,’輸出類型’])
eg.$this->show($content);

到此,關于“thinkphp基于什么模式”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海原县| 大化| 化隆| 左权县| 东方市| 大余县| 铜梁县| 鸡西市| 集贤县| 兴海县| 阿瓦提县| 富源县| 建湖县| 广南县| 芜湖县| 长武县| 茌平县| 当雄县| 前郭尔| 资讯| 朝阳县| 灌南县| 章丘市| 阳江市| 林周县| 咸宁市| 潍坊市| 二连浩特市| 鄂伦春自治旗| 莲花县| 乡宁县| 石嘴山市| 巨野县| 云霄县| 紫阳县| 唐河县| 临泉县| 云阳县| 漠河县| 河池市| 山东|