thinkphp的快捷方法實例化對象

D、F、S、C、L、A、I 他們都在functions.php這個文件家
下面我分別說明一下他們的功能

D() 加載Model類
M() 加載Model類

A() 加載Action類
L() 獲取語言定義
C() 獲取配置值    用法就是   C("這裏填寫在配置文件裏數組的下標")
S() 全局緩存配置 用法S(“這裏相當於一個唯一的標識”)
F() 快速文件數據讀取和保存 針對簡單類型數據 字符串、數組
I()   快速創建一個對象實例

以上如果有遺漏的 內部函數

ThinkPHP值得大家學習的源碼,特別是他們的中文註釋讓我們很容易就瞭解他源碼中的內容

在用thinkphp做程序時經常能用到的內部函數,對於換成這一塊用S()比較會減輕對數據庫的負擔!

在thinkphp中出了有內部還是,thinkphp還把配置文件保存爲靜態變量,在模板裏方便快速調用

如果{$Thinkphp.config.參數名稱}

如果主鍵是自動增長的,用add()的時候他會自動的返回一個插入新記錄的ID值

我們在做用戶金幣或者是積分或者是投票的時候,需要對指定的字段自加1這時候我可以可以這樣寫

$s= D('admin');$s->score='(score+1)';$s->save(); 這樣我們會剩下許多的步驟。

如果要修改指定的一個字段用簡單的辦法  D('admin')->setField('name','hehe','id=2');

D方法用於快速創建模型對象的實例,並且單例化,例如:

$User = D("User");

等效爲

$User = new UserModel();

m實例化參數是數據庫的表名.
d實例化的是你自己在model文件夾下面建立的模型文件.

D和M的區別主要在於:

M方法不需要創建模型類文件,M方法不會讀取模型類,所以默認情況下自動驗證是無效的,但是可以通過動態賦值的方式實現;

而D方法必須有創建模型類,我們可以用下面兩種方法去創建一個數據表的映射對象

第一種:$Test = D('Test')

第二種:$Test = new Model('Test')

雖然這兩種都可以對數據進行select,insert,delete,udpate操作,在數據驗證上有很大的不同,用第一種方式實例一個模型就會有數據檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標題” (這個是tp提供的一個自動驗證功能,當然也需要在相應的model中定義好驗證條件);

D方法可以自動檢測模型類,不存在時他會拋出一個異常。同時對於已實例化得得模型不會再去重複實例化(單例)。

默認的D方法只能支持調用當前的項目(或者叫做應用)下的模型

例如:$user = new UserModel();

等價於$user = D('user');

如果實例化的是一個空模型

例如 $Demo = new Model();

那麼它等價於 $Demo = M();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章