首頁  >  文章  >  php框架  >  整理ThinkPHP字母函數指南

整理ThinkPHP字母函數指南

WBOY
WBOY轉載
2022-03-09 18:28:532294瀏覽

這篇文章為大家帶來了關於thinkphp的相關知識,其中主要介紹了關於字母函數的相關問題,包括了A、B、C、D方法等等,希望對大家有幫助。

整理ThinkPHP字母函數指南

推薦學習:《thinkphp學習

A 方法

用於在內部實例化控制器,呼叫格式:

// A('[项目://][分组/]模块','控制器层名称')$User = A('User');$User = A('Admin://User');

實例化控制器後,就可以呼叫該控制器中的方法,不過需要注意的情況是,在跨項目呼叫的情況下,如果你的操作方法有針對當前控制器的特殊變數操作,會有一些未知的問題,所以,一般來說,官方建議需要公共呼叫的控制器層單獨開發,不要有太多的依賴關係。

B 方法

這是隨著行為應運而生的新生函數,可以執行某個行為,例如

B('app_begin');

就是在專案開始之前,執行這個行為定義的所有函數。支援2 個參數,第二個參數支援需要接受一個數組,例如

B('app_begin', ["name" => "tdweb","time"=>time()]);

C 方法

C 方法是Think 用於設定、獲取,以及保存配置參數的方法,使用頻率較高。

動態設定配置參數,配置參數不區分大小寫,但是建議保持統一大寫的配置定義規格。

C('DB_NAME','think');

支援二級配置參數的設置,配置參數不建議超過二級。例如:

C('USER.USER_ID',8);

如果要設定多個參數,可以使用批次設置,例如:

$config['user_id'] = 1;$config['user_type'] = 1;C($config);

如果傳入的設定參數為空,表示取得全部的參數:

$config = C();

D 方法

D 方法應該是用的比較多的方法了,用於實例化自定義模型類,是Think 框架對Model 類實例化的一種封裝,並實現了單例模式,支援跨項目和分組調用,調用格式如下:

D('[项目://][分组/]模型','模型层名称')

方法的返回值是實例化的模型物件。

D 方法可以自動偵測模型類,如果存在自訂的模型類,則實例化自訂模型類,如果不存在,則會實例化Model 基類,同時對於已實例化過的模型,不會重複去實例化。

D 方法最常用的用法就是實例化目前專案的某個自訂模型,例如:

// 实例化 User 模型$User = D('User');

F 方法

F 方法其實是S 方法的一個子集功能,僅用於簡單資料緩存,只能支援檔案形式,不支援快取有效期,因為採用的是返回方式,所以其效率較S 方法較高,因此我們也稱之為快速快取方法。

F 方法的特點是:

  • 簡單資料快取;
  • #檔案形式保存;
  • 採用返回資料方式載入快取;
  • 支援子目錄快取以及自動建立;
  • 支援刪除快取和批次刪除;

#寫入和讀取快取

F('data','test data');

預設的保存起始路徑是DATA_PATH(此常數在預設設定位於RUNTIME_PATH.'Data/' 下面),也就是說會產生檔案名稱為DATA_PATH.'data.' 的快取檔案。

注意:確保你的快取標識的唯一,避免資料覆蓋和衝突。

下次讀取快取資料的時候,使用:

$Data = F('data');

我們可以採用子目錄方式儲存,例如:

F('user/data',$data); 
// 缓存写入F('user/data'); 
// 读取缓存

就會產生DATA_PATH.' user/data.' 快取文件,如果user 子目錄不存在的話,則會自動創建,也可以支援多層子目錄,例如:

F('level1/level2/data',$data);

如果需要指定快取的起始目錄,可以用下面的方式:

F('data',$data,TEMP_PATH);

刪除快取

F('data',NULL);

G 方法

G 方法的作用包括標記位置和區間統計兩個功能,下面來看下具體用法:

標記位置

G 方法的第一個用法是標記位置,例如:

G('begin');

表示把目前位置標記為begin 標籤,並且記錄目前位置的執行時間,如果環境支援的話,還能記錄記憶體佔用情況。可以在任何位置呼叫 G 方法標記。

運行時間統計

標記位置後,我們就可以再次呼叫G 方法進行區間統計了,例如:

G('begin');
// ...其他代码段G('end');
// ...也许这里还有其他代码
// 进行统计区间echo G('begin','end').'s';

G('begin',' end') 表示統計begin 位置到end 位置的執行時間(單位是秒),begin 必須是一個已經標記過的位置,如果這個時候end 位置還沒被標記過,則會自動把當前位置標記為end 標籤,輸出的結果類似於:

0.0056s

預設的統計精度是小數點後4 位,如果覺得這個統計精度不夠,還可以設定例如:

G('begin','end',6).'s';

記憶體開銷統計

如果你的環境支援記憶體佔用統計的話,還可以使用G 方法進行區間記憶體開銷統計(單位為kb),例如:

echo G('begin','end','m').'kb';

第三個參數使用m 表示進行記憶體開銷統計,輸出的結果可能是:

625kb

I 方法

正如你所见到的一样,I 方法是 Thinkphp 众多单字母函数中的新成员,其命名来自于英文 Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:

I('变量类型.变量名',['默认值'],['过滤方法'])

变量类型是指请求方式或者输入类型,包括:

方式 说明
get 获取 GET 参数
post 获取 POST 参数
param 自动判断请求类型获取 GET、POST 或者 PUT 参数
request 获取 REQUEST 参数
put 获取 PUT 参数
session 获取 $_SESSION 参数
cookie 获取 $_COOKIE 参数
server 获取 $_SERVER 参数
globals 获取 $GLOBALS 参数

注意:变量类型不区分大小写。变量名则严格区分大小写。

默认值和过滤方法均属于可选参数。

L 方法

L 方法用于启用多语言的情况下,设置和获取当前的语言定义。

调用格式:

L('语言变量',['语言值'])

M 方法

M 方法用于实例化一个基础模型类,和 D 方法的区别在于:

  • 不需要自定义模型类,减少 IO 加载,性能较好;
  • 实例化后只能调用基础模型类(默认是 Model 类)中的方法;
  • 可以在实例化的时候指定表前缀、数据库和数据库的连接信息;

D 方法的强大则体现在你封装的自定义模型类有多强,不过随着新版 Think 框架的基础模型类的功能越来越强大,M 方法也比 D 方法越来越实用了。

M 方法的调用格式:

M('[基础模型名:]模型名','数据表前缀','数据库连接信息')

R 方法

R 方法用于调用某个控制器的操作方法,是 A 方法的进一步增强和补充。

R 方法的调用格式:

R('[项目://][分组/]模块/操作','参数','控制器层名称')

可以通过 R 方法在其他控制器里面调用这个操作方法(一般 R 方法用于跨模块调用)

$data = R('User/detail',array('5'));

官方的建议是不要在同一层多太多调用,会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助3.1的新特性多层控制器,单独添加一个控制器层用于接口调用

S 方法

S 方法还支持对当前的缓存方式传入缓存参数,例如:

S('data',$Data,3600,'File',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/'));

T 方法

为了更方便的输出模板文件,新版封装了一个 T 函数用于生成模板文件名。

T([资源://][模块@][主题/][控制器/]操作,[视图分层])

T 函数的返回值是一个完整的模板文件名,可以直接用于 display 和 fetch 方法进行渲染输出。

U 方法

U 方法用于完成对 URL 地址的组装,特点在于可以自动根据当前的 URL 模式和设置生成对应的 URL 地址,格式为:

U('地址','参数','伪静态','是否跳转','显示域名');

在模板中使用 U 方法而不是固定写死 URL 地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。

推荐学习:《thinkphp框架

以上是整理ThinkPHP字母函數指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除