>eapi內置提供了一系列常用的函數
<br/>
## fail - 輸出錯誤信息
~~~
// @param 錯誤碼
// @param 錯誤描述信息
fail(101, '錯誤說明');
~~~
</br>
## json - 輸出json數據
~~~
// @param code碼,默認為100
// @param 描述信息,默認為執行成功
// @param 返回的數據
json(100, '用戶信息獲取成功', [
'uid' => 1,
'nickname' => 'eapi'
]);
// 如果不需要指定code碼和msg信息,則可以使用以下寫法簡化
json([
'uid' => 1,
'nickname' => 'eapi'
]);
~~~
<br/>
## random - 生成隨機字符串
~~~
// @param 隨機串類型
// |-numletter:數字字母(默認)
// |-num:僅數字
// |-numnozero:僅數字但是不包括0
// |-letter:僅字母
// @param 隨機串長度,默認4
echo random('num', 4);
~~~
## encode - 字符串加密
~~~
// @param 待加密字符串
echo encode('eapi');
~~~
<br/>
## decode - 字符串解密
~~~
// @param 待解密字符串
echo decode('ZOWTFIw3aYQT@||@B@||@j');
~~~
<br/>
## isInt - 安全的判斷數字類型
~~~
// @ param 待判斷的內容
if (isInt(1)) echo '數字';
~~~
<br/>
## conf - 操作配置內容
~~~
// @param 配置KEY,默認為空,表示獲取所有配置
// @param 配置內容,默認為null,不為null則表示需要修改的配置內容
// 獲取所有配置
$conf = conf();
print_r($conf);
// 獲取MYSQL配置
$conf = conf('MYSQL');
print_r($conf);
// 修改配置項內容
conf('DEFAULT', 'eapi');
echo conf('DEFAULT');
~~~
<br/>
## logs - 寫入文件日志
~~~
// @param 日志內容,如果傳遞數據,則會自動json_encode后保存到日志文件中
// @param 日志目錄,默認為 default
logs('測試日志');
// 下面的例子會在:eapi/runtime/log/eapi 目錄下生成日志文件
logs('日志保存到eapi目錄下', 'eapi');
~~~
<br/>
## cache - 操作緩存
~~~
// @param 緩存key
// @param 緩存內容,如果傳數組,則會json_encode后存入緩存
// @param 緩存過期時間,單位秒
// 讀取緩存
cache('cache');
// 寫入緩存
cache('cache', 'cache', 600);
// 刪除緩存
cache('cache', null);
// 寫入數組緩存
cache('cache', [
'id' => 1
]);
~~~
<br/>
## get - 獲取GET參數
~~~
// GET參數已經過安全過濾,可以放心使用
// @param key
// @param 默認值,在沒有找到key時返回默認值
get('id');
// 帶默認值
get('id', 1);
// get參數支持pathinfo模式,例如:http://localhost/api/index/uid/1/name/eapi/
$uid = get('uid');
$name = get('name');
~~~
<br/>
## post - 獲取POST參數
~~~
// POST參數已經過安全過濾,可以放心使用
// @param key
// @param 默認值,在沒有找到key時返回默認值
post('id');
// 帶默認值
post('id', 1);
~~~
<br/>
## httpHeader - 獲取HEADER頭參數
~~~
// @param key
// @param 默認值,在沒有找到key時返回默認值
httpHeader('id');
// 帶默認值
httpHeader('id', 1);
~~~
<br/>
## formatTime - 格式化時間為優化的模式
~~~
// @param 待格式化的時間,支持時間戳和年月日時分秒模式
// @param 年月日時分秒的格式化
echo formatTime(time(), 'Y/m/d');
// 格式化規則說明
< 60秒顯示:剛剛
< 一小時顯示:xx分鐘前
< 一天顯示:xx小時前
< 七天顯示:xx天前
超過7天,按照第二個參數格式化時間后顯示
~~~
<br/>
## arrayInt - 格式化數組中的數字為int類型
~~~
// 說明:從redis中取出的字段會全部作為string類型,在接口返回時不友好
// @param 待格式化的數組
// @param 排除的字段
arrayInt($array, [
'name', 'intro'
]);
~~~
<br/>
## getIp - 獲取客戶端IP
~~~
echo getIp();
~~~
<br/>
## createJwt - 根據用戶ID生成JWT信息
~~~
$jwt = createJwt($uid);
~~~
<br/>
## createUUID - 根據用戶ID生成JWT信息
~~~
$uuid = createUUID($uid);
~~~
<br/>
## orderNum - 生成不重復的流水訂單號
~~~
echo orderNum();
~~~
<br/>
## createIndex - 生成唯一索引
~~~
echo createIndex();
~~~
<br/>
## jsonDecode - 帶拋出異常的json解析
~~~
try{
jsonDecode($json);
} catch(\Exception $e){
echo $e;
}
~~~
## safe - 內容安全格式
~~~
// 第一個參數為需要安全處理的內容,第二個參數是處理模式
safe('13888888888', 'phone');
~~~
## getDoc - 獲取文件擴展名
~~~
$doc = getDoc($file);
~~~
## priceToUpper - 金額轉大寫
~~~
// 第一個參數是需要轉換的金額,第二個參數是否需要轉化角、分,默認不轉,傳0表示需要轉
$money = priceToUpper($amount, 0);
~~~
## validate - 數據驗證
~~~
validate($input, 'require', '參數不能為空');
~~~