-
Notifications
You must be signed in to change notification settings - Fork 1.6k
services服务
liaofei edited this page Jan 20, 2021
·
1 revision
目录结构
├─services
│ │ CacheService.php
│ │ CopyProductService.php
│ │ DownloadImageService.php
│ │ ExpressService.php
│ │ FileService.php
│ │ FormBuilder.php
│ │ GroupDataService.php
│ │ HttpService.php
│ │ MiniProgramService.php
│ │ MysqlBackupService.php
│ │ QrcodeService.php
│ │ SpreadsheetExcelService.php
│ │ SystemConfigService.php
│ │ UpgradeService.php
│ │ UploadService.php
│ │ UtilService.php
│ │ WechatService.php
│ ├─easywechat
│ │ ├─subscribe
│ │ │ ProgramProvider.php
│ │ │ ProgramSubscribe.php
│ │ └─wechatlive
│ │ ProgramProvider.php
│ │ ProgramWechatLive.php
│ ├─printer
│ │ │ AccessToken.php
│ │ │ Printer.php
│ │ └─storage
│ │ YiLianYun.php
│ ├─sms
│ │ │ Sms.php
│ │ │
│ │ └─storage
│ │ Yunxin.php
│ ├─template
│ │ │ Template.php
│ │ └─storage
│ │ Subscribe.php
│ │ Wechat.php
│ ├─upload
│ │ │ Upload.php
│ │ └─storage
│ │ Cos.php
│ │ Local.php
│ │ Oss.php
│ │ Qiniu.php
│ └─workerman
│ │ ChannelService.php
│ │ Response.php
│ │ WorkermanHandle.php
│ │ WorkermanService.php
│ └─chat
│ ChatHandle.php
│ ChatService.php
设置、获取、清除,redis获取其他驱动类型缓存数据 使用:
//引入类
use crmeb\services\CacheService;
//存入
CacheService::set('key', 'value', '过期时间');
//取出
CacheService::set('key');
//redis缓存句柄设置存入
CacheService::redisHandler()->set();
//取出
CacheService::redisHandler()->get();
复制主流商城平台商品,通过商品详情页链接拿到整合结果商品数据结果集 使用:
//引入
use crmeb\services\CopyProductService;
//解析url 得到商品id 获取商铺id
$url_arr = parse_url($url);
//获取商品结果集
CopyProductService::getInfo($type, ['itemid' => $id, 'shopid' => $shopid], $apikey);
获取图片下载保存,或者生成缩略图保存 使用:
//引入
use crmeb\services\DownloadImageService;
//获取下载图片地址
app()->make(DownloadImageService::class)->thumb(true)->downloadImage('图片地址')['path'];
使用:
//引入
use crmeb\services\ExpressService;
//查询
ExpressService::query('物流单号');
文件、目录读取、创建、删除、判断、复制、删除等操作 使用:
//引入
use crmeb\services\FileService;
//读取
FileService::readFile($filepath);
//获取后缀
FileService::getExt($filepath);
//写入
FileService::writeFile('filename','writConten','openmod')
//复制目录
FileService::copyDir(string $surDir, string $toDir)
设置表单属性、字段,生成表单 详细文档 使用:
//引入在app\services中的使用
use crmeb\services\FormBuilder as Form;
class TestServices
{
public function createForm(array $formData = [])
{
$form[] = Form::select('pid', '父级分类', isset($formData['pid']) ? (string)$formData['pid'] : '')->setOptions($this->getSelectForm())->filterable(true);
$form[] = Form::input('title', '分类名称', $formData['title'] ?? '');
$form[] = Form::input('eng_title', '分类字段英文', $formData['eng_title'] ?? '');
$form[] = Form::frameInput('icon', '图标', $this->url('admin/widget.widgets/icon', ['fodder' => 'icon'], true), $formData['icon'] ?? '')->icon('ios-ionic')->height('435px');
$form[] = Form::radio('type', '类型', $formData['type'] ?? 0)->options([
['value' => 0, 'label' => '系统'],
['value' => 3, 'label' => '其它']
]);
$form[] = Form::radio('status', '状态', $formData['status'] ?? 1)->options([['value' => 1, 'label' => '显示'], ['value' => 2, 'label' => '隐藏']]);
$form[] = Form::number('sort', '排序', (int)($formData['sort'] ?? 0));
return create_form('表单标题名称', $form, '提交请求地址');
}
}
使用:
//引入
use crmeb\services\GroupDataService;
//获取
GroupDataService::getData('config_name');
使用:
//引入
use crmeb\services\HttpService;
//get
HttpService::getRequest($url, $data = array(), $header = false, $timeout = 10);
//post
HttpService::postRequest($url, array $data = array(), $header = false, $timeout = 10);
//请求
HttpService::request($url, $method = 'get', $data = array(), $header = false, $timeout = 15);
配合\crmeb\services\easywechat\
下方法,实现获取授权用户信息、素材上传、二维码生成、订阅消息、支付、客服消息、直播、直播商品等功能
使用:
//引入
use crmeb\services\MiniProgramService;
//获取用户信息
MiniProgramService::getUserInfo($code);
//解密用户信息
MiniProgramService::encryptor($session_key, $iv, $encryptedData);
//支付
MiniProgramService::jsPay($openid, $orderId, $price, $successAction, $body);
//直播列表
MiniProgramService::getLiveInfo($start, $limit);
使用:
//引入
use crmeb\services\MysqlBackupService;
//获取类实例
$dbBackup = app()->make(MysqlBackupService::class, [[
//数据库备份卷大小
'compress' => 1,
//数据库备份文件是否启用压缩 0不压缩 1 压缩
'level' => 5,
]]);
//数据表列表
$dbBackup->dataList();
//备份表结构
$dbBackup->backup('table','start');
//设置备份文件并恢复
$dbBackup->setFile($list)->import($start);
使用:
//引入
use crmeb\services\QrcodeService;
//获取
QrcodeService::getWechatQrcodePath(string $name, string $link, bool $force = false);
使用:
//引入
use crmeb\services\SpreadsheetExcelService;
//导出
SpreadsheetExcelService::instance()->setExcelHeader($header)
->setExcelTile($title, $name, $info)
->setExcelContent($data)
->excelSave('文件名','后缀名', '是否保存|直接下载');
使用:
//引入
use crmeb\services\SystemConfigService;
//单个
SystemConfigService::get('config_name');
//多个
SystemConfigService::more(['config_name1','config_name2'...]);
//引入
use crmeb\services\UpgradeService;
//同步信息
UpgradeService::snyweninfo($this->serverweb);
驱动\crmeb\services\upload\
下类,实现不同存储os上传保存
使用:
//引入
use crmeb\services\UploadService;
//获取不同上传实例 根据配置
$upload = UploadService::init();
//上传
$upload->to('目录地址')->stream('文件内容', '文件名');
使用:
//引入
use crmeb\services\UtilService;
//生成海报
UtilService::setShareMarketingPoster('data', '目录地址');
//获取二维码
UtilService::getQRCodePath('url', 'name');
授权获取用户信息、粉丝列表、公众号事件监听、模版消息、支付 使用:
//引入
use crmeb\services\WechatService;
//用户信息
WechatService::getUserInfo('openid');
//发送模版消息
WechatService::staffService()->message($message)->to('openid')->send();
从入口类MiniProgramService
调用使用
小票打印驱动包 使用:
//引用
use crmeb\services\printer\Printer;
//获取打印实例
$printer = new Printer('yi_lian_yun', 'data配置参数');
//打印
$res = $printer->setPrinterContent([
'name' => '标题',
'orderInfo' => '订单信息',
'product' => '商品信息'
])->startPrinter();
短信平台驱动包 使用:
//引用
use crmeb\services\sms\Sms;
//获取驱动实例
$sms = app()->make(Sms::class, [[
'sms_account' => '短信账号',
'sms_token' => '短信秘钥',
'site_url' => '根url路径'
]]);
//发送
$sms->send('phone', 'template_id模版id', 'data发送模版数据');
微信模版、小程序订阅消息驱动包 使用:
//引用
use crmeb\services\template\Template;
//获取实例
$template = new Template('wechat');
//发送
$template->to('openid')->color($color)->send('模版id', '发送内容');
上传驱动包
使用\services\UploadService.php
入口访问,参照上面UploadService
使用事例。
socket长链接、客服聊天、定时任务等服务