阅读(1052) (12)

CRMEB v4 驱动

2022-03-29 12:09:44 更新

说明

从之前的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());
}