WeChat 扩展库的配置统一存放在/wechat/config/
目录下。
其下目录文件分别代替:
api
,微信接口地址attribute
,微信开发静态配置querier
,微信开发动态配置(查询器)
实际开发中,通常只需要修改attribute
目录下,对应的配置文件即可;
如果需要使用Db查询数据库,动态加载配置文件的话,只需要修改querier
目录下的查询器,返回对应的数据结构即可,
数据结果集为attribute
目录下的配置文件返回值。
注意:查询器的返回配置会直接代替静态配置文件,不会合并使用。
以official_account
公众号开发为例:
修改/wechat/config/querier/official_account.php
为如下代码:
namespace wechat\config\querier;
use wechat\config\querier\AbstractClass;
class official_account extends AbstractClass
{
/**
* 查询器入口
*
* @return array
*/
public function run() {
// 此处用于查询Db获取动态配置项,返回给SDK代替静态配置加载
$Db = new \x\Db();
$list = $Db->name('wechat')->select();
// 示例字段结构-正常应该是数据库的返回值
$list = [
[
// 标识符
'driver' => 'default',
// Appid
'appid' => 'wxa7e83****0622541',
// AppSecret
'appsecret' => '9a1034d435*****d0df5dfde42e13c',
// 消息加解密方式 1【明文模式】 2【兼容模式,安全模式】
'token_type' => 1,
// TOKEN
'token' => '123456',
// EncodingAESKey
'encodingaeskey' => '',
// 用户信息返回结果语言版本 zh_CN 简体,zh_TW 繁体,en 英语
'web_lang' => 'zh_CN',
]
];
return $list;
}
}
WeChat 扩展库是多配置的使用方式,默认使用driver<
为default
的配置项。
也可以在调用阶段,自由切换driver<
值。
// 可以实例化时切换
$obj = new \wechat\Wechat('default');
// 也可以在调用扩展库前,使用driver()方法修改
$obj->driver('default')->official();
WeChat 扩展库也支持临时修改配置项,使用set()
方法,会和当前driver<
所指向的配置项进行合并操作。
$obj = new \wechat\Wechat();
$obj->set([
// Appid
'appid' => 'wxa7e83f****22541',
// AppSecret
'appsecret' => '9a1034d435d*****5dfde42e13c',
])->official();