說明
從之前的3.0,3.1版本中文件上傳,sms短信發送,小票打印機書文件存放還是書寫都比較隨意,因此pro版本和3.2版本中修改成多驅動形式;
文件目錄結構
├─crmeb???????CREMB核心類庫
│??├─services
│??│??├─printer?打印機
│??│??├─sms?短信
│??│??├─template?模板消息
│??│??├─upload?文件上傳
Template 使用方式
//以微信公眾號小程序模板消息為驅動方式
$template?=?new?Template('wechat');
$res=$template->to('送達人openid')->color('字體顏色')->url('跳轉路徑')->send('模板id編號',array?[發送數據]);
if($res?===?false){
????dump($res->getError());
}else{
????dump('ok');
}
增加驅動
說明
這里以文件上傳為例進行增加金山云文件上傳,創建的文件名必須首字母大寫
第一步,增加金山云上傳驅動文件類 crmeb\services\upload\storage\Jinshan.php
<?php
namespace?crmeb\services\upload\storage;
use?crmeb\basic\BaseUpload;
class?Jinshan?extends?BaseUpload
{
????//實例化類
????protected?function?initialize(array?$config)
????{
????????parent::initialize($config);?//?TODO:?Change?the?autogenerated?stub
????}
????//?實例化上傳
????protected?function?app()
????{
????????//?TODO:?Implement?app()?method.
????}
????//上傳文件
????public?function?move(string?$file?=?'file')
????{
????????//?TODO:?Implement?move()?method.
????}
????//上傳流文件
????public?function?stream(string?$fileContent,?string?$key?=?null)
????{
????????//?TODO:?Implement?stream()?method.
????}
????//刪除文件
????public?function?delete(string?$filePath)
????{
????????//?TODO:?Implement?delete()?method.
????}
????//獲取上傳密鑰
????public?function?getTempKeys()
????{
????????//?TODO:?Implement?getTempKeys()?method.
????}
}
增加上傳配置 config/upload.php 每一個驅動都能增加單獨的上傳配置
return?[
????//默認上傳模式
????'default'?=>?'local',
????//上傳文件大小
????'filesize'?=>?2097152,
????//上傳文件后綴類型
????'fileExt'?=>?['jpg',?'jpeg',?'png',?'gif',?'pem',?'mp3',?'wma',?'wav',?'amr',?'mp4',?'key'],
????//上傳文件類型
????'fileMime'?=>?['image/jpeg',?'image/gif',?'image/png',?'text/plain',?'audio/mpeg'],
????//驅動模式
????'stores'?=>?[
????????//本地上傳配置
????????'local'?=>?[],
????????//七牛云上傳配置
????????'qiniu'?=>?[],
????????//oss上傳配置
????????'oss'?=>?[],
????????//cos上傳配置
????????'cos'?=>?[],
????????//金山云上傳配置
????????'jinshan'=>[
????????????'filesize'=>2097152,
????????????'fileExt'=>['jpg'],
????????????'fileMime'=>['image/jpeg'],
????????],
????]
];
實例調用
$upload?=?new?Upload('jinshan');
//validate?參數為數組如果不填寫默認讀取jinshan云的配置進行上傳驗證
$res?=?$upload->to('上傳路徑')->validate()->move();
if($res?!==?false){
????//返回類型為對象
????dump($res);
????//可調用getUploadInfo來獲取保存在附件表的詳細信息
????dump($upload->getUploadInfo());
????//可調用getFileInfo來獲取上傳后返回的對象
????dump($upload->getFileInfo());
}else{
????//上傳失敗調用getError?獲取錯誤信息
????dump($upload->getError());
}