另外,该目录下还有对应的插件系列基类和插件基类 BasePlugin,每一个具体的插件,都首先继承自己的 插件系列基类,同时插件系列基类也继承至插件基类。
插件主程序文件,负责业务逻辑的处理,插件文件的命名遵循插件文件夹.plugin.php的命名规范
,首字母不需要大写 ,但插件类的首字母必须大写,且继承至BasePayment类(注意: 如果是其他插件系列,则继承于对应的插件系列)。插件描述文件,定义插件的名称、挂件用途、开发者信息、版本号等。注意插件名code参数必须与插件文件夹名保持一致,该文件还有个最重要的作用就是 定义插件的参数,如APPID、秘钥等字段,方便在配置插件的时候,填写这些字段。
该文件是非必须的,主要作用是编写接口SDK代码,现在很多接口对接,包括支付宝,微信支付等任何第三方支付,都会提供SDK,所以我们可以将相关的代码部署到该文件,然后给插件 主程序调用,这样的好处是,插件主程序将会变得很轻,一旦第三方接口SDK程序有更新,我们也只需要更新SDK.php文件即可。
'config' => array(
'appId' => array(
'text' => 'appId',
'desc' => '应用APPID',
'type' => 'text',
),
...
'signType' => array(
'text' => '签名类型',
'type' => 'select',
'items' => array(
'RSA2' => 'RSA2',
'RSA' => 'RSA',
),
)
)
use common\library\Plugin;
// 获取支付宝支付支付插件实例
$alipay = Plugin::getInstance('payment')->build('alipay');
// 获取支付宝支付插件配置参数
$alipay->getConfig();
// 获取支付宝支付插件描述信息
$alipay->getInfo();
// 获取所有支付插件列表
$payments = Plugin::getInstance('payment')->getList();
// 检查某个插件是否已安装
$checkInstall = Plugin::getInstance('payment')->isInstall('alipay');
// 返回插件系列基类(即:所有支付插件的父类)
$plugin = Plugin::getInstance('payment')->build();
支付插件开发实例:支付插件实例
短信插件开发实例:短信插件实例
登录插件开发实例:登录插件实例
物流插件开发实例:物流插件实例
OSS云存储开发实例:OSS云存储实例
编辑器插件开发实例:编辑器插件实例
文件上传插件开发实例:文件上传插件实例