Thinkphp 內建函式 ADSLCFUI 快捷方法全解析_PHP教程

來源:互聯網
上載者:User
ThinkPHP為一些常用的操作定義了快捷方法,這些方法具有單字母的方法名,具有比較容易記憶的特點。非常有意思的是,這些快捷方法的字母包含了ADSL字母,所以我們稱之為ADSL方法。A、D、S、L、C、F、U、I 這幾個快捷方法都在 /THINKPHP/Common/functions.php 這個檔案中,下面我分別說明一下他們各自的功能和用法。

A() 載入Action類
D() 載入Model類
S() 全域緩衝配置
L() 擷取語言定義
C() 擷取配置值
F() 快速檔案資料讀取和儲存 針對簡單類型資料 字串、數組
U() 用於完成對URL地址的組裝
I() 快速建立一個對象執行個體

1.A 快速建立Action對象

$action=new UserAction();// 等同於以下寫法:$action=A("User");而且,如果當前的UserAction類還沒有引入的話,A方法會自動引入。並且具有單例模式的支援,不會重複建立相同的Action對象。

A方法支援跨項目調用,例如:
 
$action=A("User",'Admin'); //執行個體化Admin項目的UserAction類

2.D 快速建立模型資料對象
 
先定義好模型類,如UserModel,然後就可以用D()函數對資料進行操作了。例如:
 
先在"你的項目"/Lib/Model下建立一個名為UserModel.class.php的PHP指令碼,內容如下:
 
class UserModel extends Model{}

然後,無需增加任何屬性和方法,就可以進行如下操作:
 
$User=D("User"); //執行個體化User對象,User是你在資料庫建立的一個名為"首碼_user"的資料表,也可以用$User=new UserModel()代替,進行執行個體化對象的操作。執行個體化之後,就可以對資料進行增刪查改等一系列操作了,如:
 
$User->find(1); //尋找主鍵為1的記錄

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

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

如果要修改指定的一個欄位更可以簡寫為如下:

D('User')->setField('name','hehe','id=2');

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();
 
3.S 快速控制項目緩衝方法
 
ThinkPHP把各種緩衝方式都抽象成統一的緩衝類來調用,而且ThinkPHP把所有的緩衝機制統一成一個S方法來進行操作,所以在使用不同的緩衝方式的時候並不需要關注具體的緩衝細節。如:

S('data',$Data); //使用data標識緩衝$Data資料
S('data',$Data,3600); //緩衝$Data資料3600秒
$Data=S('data'); //擷取快取資料
S('name',null); // 刪除緩衝標識name
 
4.L 快速控制項目語言變數

L方法提供了多語言的支援,可以快速設定和擷取語言定義。

L('USER_INFO','使用者資訊'); //設定名稱為USER_INFO 的語言變數
L('USER_INFO'); //擷取USER_INFO的語言變數值
//批量賦值
$array['USER_INFO']='使用者資訊';$array['ERROR_INFO']='錯誤資訊';
L($array);

5.C 快速控制項目組態變數,用法就是 C("這裡填寫在設定檔裡數組的下標")

C('USER_AUTH_ON',true); //設定名稱為USER_AUTH_ON 的配置參數
C('USER_AUTH_ON'); //擷取USER_AUTH_ON的變數值

同L一樣,C也支援批量賦值
 
注意:配置參數不區分大小寫

此外從1.5版本開始,C方法還支援二維數組的操作,例如:
 
C('USER.USER_TYPE',1);
C('USER.USER_AUTH_ON');  

6. F 檔案資料儲存方法

F方法主要用於項目的檔案資料的寫入、更改和刪除,其工作機理和S方法是類似的,區別在於用途不同,資料儲存的目錄也不同,而且不能指定緩衝方式,因為預設就是檔案形式儲存資料。F方法使用了var_export方法,所以只能支援單一資料型別,不支援對象的緩衝。

7. U 用於完成對URL地址的組裝,特點在於可以自動根據當前的URL模式和設定產生對應的URL地址

該函數格式為:U('地址','參數','偽靜態','是否跳轉','顯示網域名稱');在模板中使用U方法而不是固定寫死URL地址的好處在於,一旦你的環境變化或者參數設定改變,你不需要更改模板中的任何代碼。在模板中的調用格式需要採用 {:U('地址', '參數'…)} 的方式。

U方法的用法樣本:

U('User/add') // 產生User模組的add操作地址

也可以支援分組調用:

U('Home/User/add') // 產生Home分組的User模組的add操作地址

當然,也可以只是寫操作名,表示調用當前模組的

U('add') // 產生當前訪問模組的add操作地址

除了分組、模組和操作名之外,我們也可以傳入一些參數:

U('Blog/read?id=1') // 產生Blog模組的read操作 並且id為1的URL地址

U方法的第二個參數支援傳入參數,支援數組和字串兩種定義方式,如果只是字串方式的參數可以在第一個參數中定義,下面幾種方式都是等效的:

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')

您可能感興趣的文章

  • PHP中的字串處理函數(String Functions) 全總結
  • PHP 產生連續的數字(字母)數組函數range()分析,PHP抽獎程式函數
  • thinkphp 的 Action 控制器中的系統常量總結
  • php中在變數和函數前加static關鍵字之後的區別
  • PHP filter_var() 函數 Filter 函數
  • PHP壓縮html網頁代碼減小網路資料轉送量,清除空格,定位字元,注釋標記
  • thinkphp自動驗證與自動填滿無效的解決辦法
  • 在php中分別使用curl的post提交資料的方法和get擷取網頁資料的方法總結

http://www.bkjia.com/PHPjc/764160.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764160.htmlTechArticleThinkPHP為一些常用的操作定義了快捷方法,這些方法具有單字母的方法名,具有比較容易記憶的特點。非常有意思的是,這些快捷方法的字...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.