本篇匯總了系統提供的助手函數的基礎用法,更詳細的請參考相關章節。
系統的助手函數大致分為下面幾個類型:
- - [加載和實例化](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/211126#u52A0u8F7Du548Cu5B9Eu4F8Bu5316)
- [數據操作](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/211126#u6570u636Eu64CDu4F5C)
- [日志和調試](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/211126#u65E5u5FD7u548Cu8C03u8BD5)
- [響應輸出](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/211126#u54CDu5E94u8F93u51FA)
- [其它](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/211126#u5176u5B83)
## 加載和實例化
> ### import:導入所需的類庫 同java的Import 本函數有緩存功能
### 參數:
名稱 描述 默認值 class 類庫命名空間字符串 必須 baseUrl 起始路徑,留空為自動識別 空 ext 導入的文件擴展名 EXT常量### 返回值:
導入成功返回true,否則返回false。
### 示例:
注意該方法只是導入文件,和是否有命名空間和如何實例化無關。
```
<pre class="calibre18">
```
$result = <span class="hljs-keyword">import</span>(<span class="hljs-string">'org/util/Array'</span>);
```
```
> ### vendor:導入vendor目錄下的第三方類庫(非命名空間)
### 參數:
名稱 描述 默認值 class 要導入的類庫 必須 ext 導入的文件擴展名 EXT常量### 返回值:
導入成功返回true,否則返回false。
### 示例:
注意該方法只是導入文件,和是否有命名空間和如何實例化無關。
```
<pre class="calibre18">
```
<span class="hljs-regexp">$result</span> = vendor(<span class="hljs-string">'org/util/Array'</span>);
```
```
> ### load\_trait:快速導入Traits PHP5.5以上無需調用
### 參數:
名稱 描述 默認值 class 要導入的trait庫 必須 ext 類庫后綴 EXT常量### 返回值:
導入成功返回true,否則返回false。
### 示例:
```
<pre class="calibre18">
```
load_trait(<span class="hljs-string">'controller/Jump'</span>);
```
```
> ### model:實例化模型類(單例)
### 參數:
名稱 描述 默認值 name Model名稱 必須 layer 模型層名稱 model appendSuffix 是否添加類名后綴 false### 返回值:
模型實例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$user</span> = model(<span class="hljs-string">'User'</span>);
```
```
> ### validate:實例化驗證器類(單例)
### 參數:
名稱 描述 默認值 name 驗證器名稱 必須 layer 驗證層名稱 validate appendSuffix 是否添加類名后綴 false### 返回值:
驗證器實例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$validate</span> = validate(<span class="hljs-string">'User'</span>);
```
```
> ### db:實例化數據庫類
### 參數:
名稱 描述 默認值 name 操作的數據表名稱(不含前綴) 必須 config 數據庫配置參數,數組或者字符串,留空獲取配置文件中的配置 空 force 是否強制重新連接 true### 返回值:
數據庫查詢對象實例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$db</span> = db(<span class="hljs-string">'user'</span>);
```
```
> ### controller:實例化控制器類
### 參數:
名稱 描述 默認值 name 控制器資源地址 \[模塊/\]控制器 必須 layer 控制器層名稱 controller appendSuffix 是否添加類名后綴 false### 返回值:
控制器對象實例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$user</span> = controller(<span class="hljs-string">'Admin/User'</span>);
```
```
> ### action:調用模塊的操作方法 參數格式 \[模塊/控制器/\]操作
### 參數:
名稱 描述 默認值 url 調用地址 必須 vars 調用參數 支持字符串和數組 空 layer 要調用的控制層名稱 controller appendSuffix 是否添加類名后綴 false### 返回值:
根據方法的返回值
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$result</span> = action(<span class="hljs-string">'Admin/User/getInfo'</span>);
```
```
> ### request:獲取當前的請求對象實例(單例)
### 參數:
無
### 返回值:
`\think\Request`對象實例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-function"><span class="hljs-title">request</span><span class="hljs-number">()</span>-></span><span class="hljs-operator">url</span>();
<span class="hljs-function"><span class="hljs-title">request</span><span class="hljs-number">()</span>-></span><span class="hljs-operator">param</span>();
```
```
> ### response:創建響應對象實例
### 參數:
名稱 描述 默認值 data 響應輸出數據 空 code 輸出狀態碼 200 header 輸出HEADER信息 空 type 響應輸出類型 html### 返回值:
`\think\response`對象實例
### 示例:
```
<pre class="calibre18">
```
response(<span class="hljs-regexp">$data</span>,[],[],<span class="hljs-string">'json'</span>);
```
```
## 數據操作
> ### session:Session操作助手函數
### 參數:
名稱 描述 默認值 name session名稱,如果為數組表示進行session初始化 必須 value session值 空 prefix session變量前綴 null### 返回值:
多種情況
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-comment">// session初始化</span>
session([<span class="hljs-string">'id'</span>=><span class="hljs-string">'think'</span>,<span class="hljs-string">'prefix'</span>=><span class="hljs-string">'think'</span>]);
<span class="hljs-comment">// session設置</span>
session(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>);
<span class="hljs-comment">// session判斷</span>
session(<span class="hljs-string">'?name'</span>);
<span class="hljs-comment">// session獲取</span>
session(<span class="hljs-string">'name'</span>);
<span class="hljs-comment">// session刪除</span>
session(<span class="hljs-string">'name'</span>,<span class="hljs-keyword">null</span>);
<span class="hljs-comment">// session清空</span>
session(<span class="hljs-keyword">null</span>);
```
```
> ### cookie:Cookie操作助手函數
### 參數:
名稱 描述 默認值 name cookie名稱,如果為數組表示進行cookie初始化 必須 value cookie值 空 option 參數 null### 返回值:
多種情況
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-comment">// cookie初始化</span>
cookie([<span class="hljs-string">'expire'</span>=><span class="hljs-number">3600</span>,<span class="hljs-string">'prefix'</span>=><span class="hljs-string">'think'</span>]);
<span class="hljs-comment">// cookie設置</span>
cookie(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>);
<span class="hljs-comment">// cookie判斷</span>
cookie(<span class="hljs-string">'?name'</span>);
<span class="hljs-comment">// cookie獲取</span>
cookie(<span class="hljs-string">'name'</span>);
<span class="hljs-comment">// cookie刪除</span>
cookie(<span class="hljs-string">'name'</span>,<span class="hljs-keyword">null</span>);
<span class="hljs-comment">// cookie清空</span>
cookie(<span class="hljs-keyword">null</span>);
```
```
> ### cache:緩存操作助手函數
### 參數:
名稱 描述 默認值 name 緩存名稱,如果為數組表示進行緩存初始化 必須 value 緩存值 空 options 緩存參數 或者傳入數字的時候為有效期 null tag 緩存標簽 null### 返回值:
多種情況
### 示例:
```
<pre class="calibre18">
```
// 緩存初始化
<span class="hljs-operator"><span class="hljs-keyword">cache</span>([<span class="hljs-string">'expire'</span>=><span class="hljs-number">3600</span>,<span class="hljs-string">'prefix'</span>=><span class="hljs-string">'think'</span>]);</span>
// 緩存設置
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>,<span class="hljs-number">3600</span>);</span>
// 緩存判斷
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'?name'</span>);</span>
// 緩存獲取
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'name'</span>);</span>
// 緩存刪除
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'name'</span>,<span class="hljs-number">null</span>);</span>
```
```
> ### config:設置或者獲取配置參數
### 參數:
名稱 描述 默認值 name 參數名 如果是數組表示批量賦值 必須 value 參數值 空 range 作用域,留空表示當前作用域 空### 返回值:
根據情況
### 示例:
```
<pre class="calibre18">
```
config(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>);
config(<span class="hljs-string">'?name'</span>);
config(<span class="hljs-string">'name'</span>);
config([<span class="hljs-string">'name'</span>=><span class="hljs-string">'value'</span>]);
```
```
> ### input:獲取輸入數據 支持默認值和過濾
### 參數:
名稱 描述 默認值 key 獲取的變量名 必須 default 默認值 空 filter 過濾方法 空### 返回值:
根據情況
### 示例:
```
<pre class="calibre18">
```
input(<span class="hljs-string">'name'</span>);
input(<span class="hljs-string">'?name'</span>);
input(<span class="hljs-string">'get.id'</span>,<span class="hljs-number">0</span>);
```
```
## 日志和調試
> ### dump:瀏覽器友好的變量輸出
### 參數:
名稱 描述 默認值 var 調試變量或者信息 必須 echo 是否輸出 默認為true 如果為false 則返回輸出字符串 true label 標簽 空### 返回值:
無
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-keyword">dump</span>(<span class="hljs-regexp">$data</span>);
<span class="hljs-keyword">dump</span>(<span class="hljs-regexp">$data</span>,false);
<span class="hljs-keyword">dump</span>(<span class="hljs-string">'測試輸出'</span>);
```
```
> ### halt:調試變量并中止
和dump函數的區別在于調試輸出后中止執行后面的程序。
### 參數:
名稱 描述 默認值 var 調試變量或者信息 必須### 返回值:
無
### 示例:
```
<pre class="calibre18">
```
halt(<span class="hljs-regexp">$data</span>);
halt(<span class="hljs-string">'測試輸出'</span>);
```
```
> ### trace:記錄日志信息
### 參數:
名稱 描述 默認值 log log信息 支持字符串和數組 level 日志級別 log### 返回值:
沒有傳任何參數的時候 獲取日志信息,否則為記錄日志
### 示例:
```
<pre class="calibre18">
```
trace(<span class="hljs-string">'日志錯誤信息'</span>,<span class="hljs-string">'error'</span>);
```
```
> ### exception:拋出異常
### 參數:
名稱 描述 默認值 msg 異常消息 必須 code 異常代碼 0 exception 異常類名 留空拋出 `\think\Exception` 異常 空### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-keyword">exception</span>(<span class="hljs-string">'錯誤'</span>);
<span class="hljs-keyword">exception</span>(<span class="hljs-string">'權限錯誤'</span>,<span class="hljs-number">10002</span>,<span class="hljs-string">'\app\common\AuthException'</span>);
```
```
> ### debug:調試時間(微秒)和內存使用情況
### 參數:
名稱 描述 默認值 start 開始標簽 必須 end 結束標簽 空字符串 dec 小數位 如果是m 表示統計內存占用 6### 返回值:
根據情況
### 示例:
```
<pre class="calibre18">
```
debug('<span class="hljs-operator"><span class="hljs-keyword">begin</span><span class="hljs-string">');
// ...
echo debug('</span><span class="hljs-keyword">begin</span><span class="hljs-string">','</span><span class="hljs-keyword">end</span><span class="hljs-string">',6);
echo debug('</span><span class="hljs-keyword">begin</span><span class="hljs-string">','</span><span class="hljs-keyword">end</span><span class="hljs-string">','</span><span class="hljs-keyword">m</span><span class="hljs-string">');</span></span>
```
```
## 響應輸出
> ### view:模板渲染輸出
### 參數:
名稱 描述 默認值 template 模板文件 空 vars 模板變量 無 replace 模板替換規則 空 code 狀態碼 200### 返回值:
`\think\response\View`對象實例
### 示例:
```
<pre class="calibre18">
```
view(<span class="hljs-string">'index/hello'</span>,[<span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### json:創建JSON響應對象實例
### 參數:
名稱 描述 默認值 data 響應輸出數據 空 code 輸出狀態碼 200 header 輸出頭信息 空 options 輸出參數 空### 返回值:
`\think\response\Json`對象實例
### 示例:
```
<pre class="calibre18">
```
json([<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### jsonp:創建JSONP響應對象實例
### 參數:
名稱 描述 默認值 data 響應輸出數據 空 code 輸出狀態碼 200 header 輸出頭信息 空 options 輸出參數 空### 返回值:
`\think\response\Jsonp`對象實例
### 示例:
```
<pre class="calibre18">
```
jsonp([<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### xml:創建XML響應對象實例
### 參數:
名稱 描述 默認值 data 響應輸出數據 空 code 輸出狀態碼 200 header 輸出頭信息 空 options 輸出參數 空### 返回值:
`\think\response\Xml`對象實例
### 示例:
```
<pre class="calibre18">
```
xml([<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### redirect:創建重定向響應對象實例
### 參數:
名稱 描述 默認值 url 重定向地址 空 params 參數,當傳入數字的時候表示狀態碼 空 code 狀態碼 302### 返回值:
`\think\response\Redirect`對象實例
### 示例:
```
<pre class="calibre18">
```
redirect(<span class="hljs-string">'http://thinkphp.cn'</span>, [<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>],<span class="hljs-number">301</span>);
redirect(<span class="hljs-string">'http://thinkphp.cn/blog'</span>, <span class="hljs-number">301</span>);
```
```
> ### abort:拋出HTTP異常
### 參數:
名稱 描述 默認值 code 狀態碼 或者 Response對象實例 必須 message 錯誤信息 空 header 參數 空### 返回值:
無
### 示例:
```
<pre class="calibre18">
```
abort(<span class="hljs-number">401</span>, <span class="hljs-string">'頁面不存在'</span>);
abort(<span class="hljs-number">500</span>, <span class="hljs-string">'服務器錯誤'</span>);
```
```
## 其它
> ### token:生成表單令牌(form表單項)
### 參數:
名稱 描述 默認值 name 令牌名稱 **token** type 令牌生成方法 md5### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
<form action=<span class="hljs-string">""</span> >
<input <span class="hljs-operator"><span class="hljs-keyword">type</span>=</span><span class="hljs-string">"text"</span> name=<span class="hljs-string">"name"</span> />
{:token(<span class="hljs-operator">'__hash_</span>_')}
<input <span class="hljs-operator"><span class="hljs-keyword">type</span>=</span><span class="hljs-string">"submit"</span> />
</form>
```
```
> ### url:生成URL地址(支持路由反解)
### 參數:
名稱 描述 默認值 url 路由地址 空 vars 變量 空 suffix 生成的URL后綴 true 表示自動識別配置 domain 是否帶域名生成 false### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
url(<span class="hljs-string">'index/index/hello'</span>,[<span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
url(<span class="hljs-string">'index/index/hello'</span>,<span class="hljs-string">'name&thinkphp'</span>);
```
```
> ### lang:獲取語言變量值
### 參數:
名稱 描述 默認值 name 語言變量名 必須 vars 動態變量值 空 lang 語言 留空自動識別當前語言 空### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
lang(<span class="hljs-string">'lang_str'</span>);
```
```
> ### widget:渲染輸出Widget
### 參數:
名稱 描述 默認值 name Widget名稱 必須 data 傳入的參數 空### 返回值:
根據情況
### 示例:
通常在模板文件中調用
```
<pre class="calibre42">
```
{<span class="hljs-operator">:widget</span>(<span class="hljs-string">'name'</span>)}
```
```
- 脕茫隆壟脨貌脩脭
- 脕茫隆壟脨貌脩脭
- 脪祿隆壟祿霉麓隆
- 脪祿隆壟祿霉麓隆
- 露鎂隆壟URL潞脥脗路脫脡
- 露鎂隆壟URL潞脥脗路脫脡
- 脠媒隆壟脟毛脟貿潞脥脧矛脫婁
- 脠媒隆壟脟毛脟貿潞脥脧矛脫婁
- 脣脛隆壟脢媒戮脻驢芒
- 脣脛隆壟脢媒戮脻驢芒
- 脦氓隆壟虜茅脩爐脫茂脩脭
- 脦氓隆壟虜茅脩爐脫茂脩脭
- 脕霉隆壟脛攏脨脥潞脥鹿脴脕陋
- 攏簍1攏漏脛攏脨脥露簍脪氓
- 攏簍2攏漏祿霉麓隆虜脵脳梅
- 攏簍3攏漏露脕脠隆脝梅潞脥脨脼賂脛脝梅
- 攏簍4攏漏脌脿脨脥脳陋祿祿潞脥脳脭露爐脥錨魯脡
- 攏簍5攏漏虜茅脩爐路露脦摟
- 攏簍6攏漏脢盲脠毛潞脥脩茅脰隴
- 攏簍7攏漏鹿脴脕陋
- 攏簍8攏漏脛攏脨脥脢盲魯枚
- 脝脽隆壟脢脫脥錄潞脥脛攏擄氓
- 脝脽隆壟脢脫脥錄潞脥脛攏擄氓
- 擄脣隆壟碌梅脢脭潞脥脠脮脰戮
- 擄脣隆壟碌梅脢脭潞脥脠脮脰戮
- 戮脜隆壟API驢陋路壟
- 戮脜隆壟API驢陋路壟
- 脢廬隆壟脙眉脕卯脨脨鹿隴戮脽
- 脢廬隆壟脙眉脕卯脨脨鹿隴戮脽
- 脢廬脪祿隆壟脌漏脮鹿
- 脢廬脪祿隆壟脌漏脮鹿
- 脢廬露鎂隆壟脭脫脧卯
- Cookie
- Session
- 碌樓脭陋虜芒脢脭
- 脥錄脧帽麓婁脌鉚
- 脦脛錄鎂脡脧麓蘆
- 脩茅脰隴脗毛
- 賂陸脗錄
- A隆壟魯攏錄沒脦脢脤芒錄爐
- B隆壟3.2潞脥5.0脟酶鹵冒
- C隆壟脰煤脢脰潞爐脢媒
- 路盧脥芒脝陋攏潞脩摟脧擄ThinkPHP5碌脛脮媒脠路脳脣脢脝
- 路盧脥芒脝陋攏潞脩摟脧擄ThinkPHP5碌脛脮媒脠路脳脣脢脝