-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Basic目录
liaofei edited this page Jan 20, 2021
·
1 revision
目录结构
├─basic
│ BaseController.php
│ BaseJob.php
│ BaseManager.php
│ BaseMessage.php
│ BaseModel.php
│ BasePrinter.php
│ BaseSms.php
│ BaseStorage.php
│ BaseUpload.php
创建User控制器,文件存放目录:app\api\controller\user\User.php
<?php
namspase app\api\controller\user;
class User extends BaseController
{
public function index()
{
return $this->success('ok');
}
}
创建一个执行消息队列的类,文件存放目录:crmeb\job\TestJob.php
<?php
namespase crmeb\job;
use crmeb\job\BaseJob;
class TestJob extends BaseJob
{
public function index()
{
return true;
}
}
使用加入消息队列:
use crmeb\utils\Queue;
use crmeb\job\TestJob;
Queue::instance()->do('index')->job(TestJob::class)->push();
创建一个快递服务目录结构如下
crmeb
│ ├─services
│ │ ├─express
│ │ │ ├─Express.php
│ │ │ ├─storage
│ │ │ │ ├─Express100.php
express
目录属于整个服务的大目录。crmeb/services/express/Express.php
属于服务入口文件,文件内容如下
<?php
namespace crmeb\services\express;
use crmeb\basic\BaseManager;
/**
* Class Express
* @package crmeb\services\express
*/
class Express extends BaseManager
{
/**
* 设置驱动命名空间
* @var string
*/
protected $namespace = '\\crmeb\\services\\express\\storage\\';
/**
* 设置默认驱动
* @return mixed|string
*/
protected function getDefaultDriver()
{
return 'express_100';
}
}
-
getDefaultDriver
方法返回字符串为当前服务驱动的默认驱动 - 属性
$namespace
设置当前服务驱动存放在那个命名空间下 -
crmeb/services/express/storage/Express100.php
属于需要具体实现的业务逻辑
BaseMessage
用于模板消息发送继承后内部自带很多快捷方法,可快速的调用利于对接各种模板消息。在对接多种平台的时候需要实现send
发送模板消息的逻辑,add
添加模板消息的逻辑,delete
和list
总计4个方法
创建一个百度小程序的模板消息发送蕾,文件目录存放:crmeb\services\template\storage\Baidu.php
<?php
namespace crmeb\services\template\storage;
use crmeb\basic\BaseMessage;
class Baidu extends BaseMessage
{
/**
* 初始化
* @param array $config
* @return mixed|void
*/
protected function initialize(array $config)
{
parent::initialize($config); // TODO: Change the autogenerated stub
}
/**
* 发送模板消息
* @param string $templateId
* @param array $data
* @return mixed|void
*/
public function send(string $templateId, array $data = [])
{
// TODO: Implement send() method.
}
/**
* 添加模板消息
* @param string $shortId
* @return mixed|void
*/
public function add(string $shortId)
{
// TODO: Implement add() method.
}
/**
* 删除模板消息
* @param string $templateId
* @return mixed|void
*/
public function delete(string $templateId)
{
// TODO: Implement delete() method.
}
/**
* 模板消息列表
* @return mixed|void
*/
public function list()
{
// TODO: Implement list() method.
}
}
-
send
方法负责发送模板消息 -
add
方法负责添加模板消息,如果没有添加的接口可以不用实现内部的逻辑,但是不需要创建出对应的方法 -
delete
方法负责删除模板消息, -
list
方法获取模板消息列表
创建一个User的model,文件目录:app\model\user\User.php
<?php
namespase app\model\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
class User extends BaseModel
{
use ModelTrait;
protected $name = 'user';
/**
* 设置主键
* @var string
*/
protected $pk = 'id';
/**
* 是否自动更新时间
* @var string
*/
protected $updateTime = false;
}
实例增加一个小鹅通小票打印机,文件存放目录:cremb\services\sms\storage\XiaoETong.php
<?php
namsepase crmeb\services\printer\storage;
use crmeb\basic\BasePrinter;
class XiaoETong extends BasePrinter
{
/**
* 初始化
* @param array $config
* @return mixed|void
*/
protected function initialize(array $config)
{
parent::initialize($config);
}
/**
* 开始打印
* @return bool|mixed|string
* @throws \Exception
*/
public function startPrinter()
{
//处理打印逻辑
}
/**
* 设置打印内容
* @param array $config
* @return YiLianYun
*/
public function setPrinterContent(array $config): self
{
//处理打印机要打印的内容
$this->printerContent = '打印内容';
return $this;
}
}
实例增加一个阿里云短信平台,文件存放目录:cremb\services\sms\storage\Aliyun.php
<?php
namsepase crmeb\services\sms\storage;
use crmeb\basic\BaseSms;
class Aliyun extends BaseSms
{
/**
* 初始化
* @param array $config
* @return mixed|void
*/
protected function initialize(array $config)
{
parent::initialize($config);
}
/**
* 发送短信
* @param $phone
* @param $template
* @param $param
* @return bool|string
*/
public function send(string $phone, string $templateId, array $data = [])
{
//完成阿里云平台发送短信逻辑
}
}