thinkphp 的ADSL內部函式

2021-08-27 12:46:50 字數 2261 閱讀 4988

thinkphp為一些常用的操作定義了快捷方法,這些方法具有單字母的方法名,具有比較容易記憶的特點。非常有意思的是,這些快捷方法的字母包含了adsl字母,所以我們稱之為adsl方法---引自thinkphp

首先a、d、s、l、c、f、i他們都在/thinkphp/common/functions.php這個檔案中

下面我分別說明一下他們的功能,也可以參照手冊,看源**,資料比較多。

a()載入action類

d()載入model類

m()載入model類

s()全域性快取配置

l()獵取語言定義

c()獵取配置值

f()快速檔案資料讀取和儲存針對簡單型別資料字串、陣列

i()快速闖建乙個物件例項

1.a快速闖建action物件

$action=newuseraction();//等同於以下寫法:

$action=a("user");

而且,如果當前的useraction類還沒有引入的話,a方法會自動引入。並且具有單例模式的支援,不會重複炒建相同的action物件。

a方法支援跨專案呼叫,例如:

$action=a("user"'admin');//例項化admin專案的useraction類

2.d快速闖建模型資料物件

先定義好模型類,如usermodel,然後就可以用d()函式對資料進行操作了。例如:

先在"你的專案"\lib\model下建立乙個名為usermodel.class.php的php指令碼,內容如下:

classusermodelextendsmodel{}

然後,無需增加任何屬性和方法,就可以進行如下操作:

$user=d("user");//例項化user物件,user是你在資料庫建立的乙個名為"字首_user"的資料表

也可以用$user=newusermodel()代替,進行例項化物件的操作。

例項化之後,就可以對資料進行增刪查改等一系列操作了,如:

$user->find(1);//查詢主鍵為1的記錄

3.s快速操作快取方法

thinkphp把各種快取方式都抽象成統一的快取類來呼叫,而且thinkphp把所有的快取機制統一成乙個s方法來進行操作,所以在使用

不同的快取方式的時候並不需要關注具體的快取細節。如:

s('data'$data);//使用data標識快取$data資料

s('data'$data3600);//快取$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(『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方法,所以只能支援簡單資料型別,不支援物件的快取。

m()和c()

區別一,重點在於資料的驗證:

d()和m()的區別主要在於m()方法不需要建立模型類檔案(即./lib/model/下面的檔案),m()方法不會讀取模型類,所以預設情況下自動驗證是無效的,但是可以通過動態賦值的方式實現,而d()方法必須有建立模型類(即./lib/model/下面的檔案)。

區別二,在於模型命名中truetablename的區別:

用了$truetablename後,必須用$test=d(『test』),表示查詢的是test表,如果用的是$test=m(『test』),那麼都表示查詢的資料邊是think_test。

家裡的ADSL佈線

寒假把電腦從學校帶回來了,還好是液晶的,不過機箱還是很重 兩塊硬碟 1臺燒錄機 一塊軟碟機,裝機箱的箱子裡又塞了基本書進去,能不重嗎?千辛萬苦為的是什麼,就是想上上電信網。申請了一周多了上網一直都不滿意,速度還行,就是老斷線。斷了線又連不上,得重啟。今天上網胡亂搜了一番,原來是佈線的問題。和adsl...

ADSL貓的漏洞

adsl貓的漏洞 最近我的寬頻服務到期了,為了能繼續上網,我想了很多辦法,但覺得還是自己再搞個帳號來比較好!於是我在我們學校的ip段,掃瞄了一些電腦,一看有些電腦,開了23斷口,高興!因為可能是adsl的ip,於是登陸進去,沒想到是要密碼,不過,我一看是vking,想是實達的,用預設使用者名稱和密碼...

ADSL的反射弧

處方 http munity.rising.forum msg read.asp?fmid 3 subjectid 5110990 page 1 3.安裝pppoe後啟動速度變慢 故障現象 安裝了adsl的pppoe軟體以後電腦啟動速度慢了。故障分析處理 這和網絡卡設定有問題有關,由於系統啟動時需要...