指令字使用
外掛與主程式之間,外掛與外掛之間,均透過指令字通訊,一個完整的通訊流程包括請求輸入 input
和結果輸出 output
。
請求輸入 input
名稱 | 說明 |
---|---|
\FresnsCmdWord | 指令字立面(Facades) |
FresnsEmail | 請求物件 fskey ,留空或填 Fresns 則表示由主程式處理請求 |
sendEmail | 指令字(可參考 Fresns 指令字) |
$wordBody | 指令字傳參的參數列表 |
php
// $參數數組名 = [參數數組];
$wordBody = [
'email' => '收件者信箱',
'title' => '郵件標題',
'content' => '郵件內容',
];
// \指令字立面::plugin('外掛名稱')->指令字($參數陣列名)
\FresnsCmdWord::plugin('FresnsEmail')->sendEmail($wordBody);
另一種寫法
php
\FresnsCmdWord::plugin('FresnsEmail')->sendEmail([
'email' => '收件者信箱',
'title' => '郵件標題',
'content' => '郵件內容',
]);
結果輸出 output
參數 | 說明 |
---|---|
code | 狀態碼 |
message | 狀態資訊 |
data | 輸出數據 |
json
// 成功
{
"code": 0,
"message": "ok",
"data": {
//指令字輸出數據
}
}
// 失敗
{
"code": 21001,
"message": "外掛不存在",
"data": {
//指令字輸出數據
}
}
錯誤碼 error code
Code | Message |
---|---|
21000 | 未配置外掛 |
21001 | 外掛不存在 |
21002 | 指令字不存在 |
21003 | 指令字未知錯誤 |
21004 | 指令字無響應 |
21005 | 指令字請求參數錯誤 |
21006 | 指令字執行請求出錯 |
21007 | 指令字響應結果不正確 |
21008 | 數據異常,查詢不到或者數據重複 |
21009 | 執行異常,文件丟失或者記錄錯誤 |
21010 | 指令字功能已關閉 |
21011 | 指令字配置不正確 |
結果處理 fresnsResp
如果你是標準的使用指令字回參結果,可以藉助 Fresns Response 幫助你快速處理請求的返參。
範例:
php
$fresnsResp = \FresnsCmdWord::plugin('FresnsEmail')->sendEmail($wordBody);
處理異常狀況
php
if ($fresnsResp->isErrorResponse()) {
return $fresnsResp->getErrorResponse();
}
處理正常狀況
php
$fresnsResp->getOrigin(); //取得原始數據(code+message+data)
$fresnsResp->getCode(); //只取得 code
$fresnsResp->getMessage(); //只取得 message
$fresnsResp->getData(); //只取得 data 全量數據
$fresnsResp->getData('user.nickname'); //只取得 data 中指定參數,例如 data.user.nickname
$fresnsResp->isSuccessResponse(); //判斷請求是否為 true
$fresnsResp->isErrorResponse(); //判斷請求是否為 false
$fresnsResp->getErrorResponse(); //內部使用輸出原始數據,API 呼叫輸出 JSON