首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP 核心快捷函數 A D S L C F U I 完整解析與實戰用法

     編輯:PHP 相關知識

ThinkPHP 單字母核心函數 (ADSL CFUI) 深度指南

ThinkPHP 內建 8 個單字母快捷函數,涵蓋控制器實例化、模型操作、緩存、語言、配置、文件存儲、URL 組裝、對象實例化,極大提升開發效率。本文逐一解析參數、返回值與進階用法。

函數速覽表

函數全稱核心功能
AAction實例化控制器 (支持跨模塊/分組)
DModel實例化模型 (自動驗證、單例)
SCache統一緩存接口 (多驅動透明切換)
LLang多語言變量獲取/設置
CConfig配置讀寫 (支持二維陣列、不區分大小寫)
FFile簡單類型文件緩存讀寫 (var_export 序列化)
UURLURL 組裝 (自動適配路由模式、偽靜態)
IInstance快速實例化任意類 (單例模式)

1. A() — 控制器實例化

$action = A('User');           // 等同 new UserAction(); 自動引入、單例
$action = A('User', 'Admin');  // 跨分組實例化 Admin 模塊的 UserAction

特性:自動載入類文件、單例模式避免重複實例化。

2. D() — 模型實例化 (核心 ORM 入口)

// 定義模型類
class UserModel extends Model {}

// 實例化並操作
$User = D('User');              // 映射表 prefix_user
$User->find(1);                 // 查主鍵 1
$User->score = '(score+1)';     // 字段自增寫法
$User->save();

D('User')->setField('name', 'hehe', 'id=2'); // 單字段快速更新

D vs M 差異:

  • D() 需模型類文件,自動讀取驗證規則,單例。
  • M() 無需模型類,直接操作表,無自動驗證 (可動態賦值實現),非單例。

3. S() — 統一緩存操作

S('data', $Data);           // 寫入永久緩存
S('data', $Data, 3600);     // 寫入 3600 秒
$Data = S('data');          // 讀取
S('name', null);            // 刪除

底層自動適配 File、Memcache、Redis 等驅動,業務代碼零耦合。

4. L() — 多語言支持

L('USER_INFO', '用戶信息');  // 設置
L('USER_INFO');              // 獲取
L(['USER_INFO'=>'用戶信息','ERROR_INFO'=>'錯誤信息']); // 批量

5. C() — 配置管理

C('USER_AUTH_ON', true);     // 設置
C('USER_AUTH_ON');           // 獲取
C(['USER_AUTH_ON'=>true]);   // 批量
C('USER.USER_TYPE', 1);      // 二維陣列寫法 (v1.5+)
C('USER.USER_AUTH_ON');

配置鍵名不區分大小寫。

6. F() — 文件數據緩存

  • 針對字符串、陣列等簡單類型 (不支持對象/資源)。
  • 機制同 S(),但固定文件存儲、不可指定驅動、目錄獨立 (Runtime/Data/)。

7. U() — URL 智能組裝

U('User/add');                    // 當前模塊 add
U('Home/User/add');               // 跨分組
U('Blog/read?id=1');              // 參數字符串
U('Blog/cate', ['cate_id'=>1]);   // 參數陣列
U('Blog/cate?cate_id=1&status=1');// 混合寫法

模板中使用 {:U('...')},環境遷移零修改模板。

8. I() — 任意類實例化

$obj = I('MyClass');  // 單例實例化,等同 new MyClass() 但自動單例
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved