phper666/easywechat-extension 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

phper666/easywechat-extension

Composer 安装命令:

composer require phper666/easywechat-extension

包简介

README 文档

README

扩展easywechat,主要是针对easywechat不及时更新版本时,可以自主扩展微信的api接口

问题

最近开发遇到了一个问题,使用easywechat包时,有些微信接口没有,需要自行扩展这些接口。原来有想过fork easywechat的包来扩展,但是这样不好的是,每次easywechat版本发布都需要去查看该本版有什么改动,然后再修改到自己fork的easywechat包。最近去看了下easywechat的源码包,发现可以不改动easywechat包的情况下扩展微信的接口。

如何扩展接口

1、继承easywechat原有的工厂类,自己自定义一个方法来实例化你扩展的接口,比如我自定义了一个customMake来实例化扩展的企业微信外部联系人标签接口

2、扩展接口,比如现在easywechat没有企业微信外部联系人标签的接口,但是有外部联系人的一些其他接口了,所有我找到了企业微信Work/ExternalContact下外部联系人的接口,然后扩展一个CorpTag类,这个类封装了所有企业微信外部联系人的标签操作接口

3、提供你的扩展接口,如果你看easywechat的源码,你会发现每种类型接口下都有一个ServiceProvider.php的类,这个类就是用来注册你封装好的接口。因为我扩展的外部联系人企业标签接口原来已经有了一些接口,所以我需要重写这个ServiceProvider类下的register方法来注册接口,实际只有一个方法,你可以继承ServiceProvider,然后重写register方法,也可以重新写一个新的ServiceProvider类,目前我是新写一个ServiceProvider

4、easywechat支持微信多种类型接口,比如微信公众号、微信小程序、企业微信、开放平台等,你需要找到需要扩展的接口类型,继承该类型下的Application类,然后重写$providers属性,该属性是会实例化填写的所有的ServiceProvider驱动,比如我刚刚新增了一个\Phper666\EasywechatExtension\Work\ExternalContact\ServiceProvider驱动来加载接口,所以我要把它旧的\EasyWeChat\Work\ServiceProvider驱动删掉,写上自己新增的ServiceProvider驱动,这样就能使用自己扩展的接口了,easywecaht原有的驱动不要删除,直接复制上去,删掉你要扩展的驱动就行。这样也完全不用担心easywechat升级版本了,我们只需要维护自己扩展的接口就行,easywechat新增什么我们更新后照样能用

5、使用扩展接口

// 使用原来的easywechat接口:
$config = []; // 自行写上自己的配置
$app = Factory::work($config); // 可以继续请求easywechat封装好的接口

// 使用自己扩展的接口(包含了easywechat的原有接口)
$app = Factory::customMake('Work', $config);
$app->corp_tag->getCorpTagList(); // 这里就能拿到了外部联系人企业标签的列表

6、自己维护扩展包
如果你要自己维护一个扩展包,你需要修改几个地方, 1、先拉取项目

git clone https://github.com/phper666/easywechat-extension.git

2、修改Phper666\EasywechatExtension\Factory下的customMake方法,把里面的命名空间改为你的命名空间

3、全局修改该包的命名空间,把Phper666\EasywechatExtension命名空间修改为你的命名空间

4、修改composer.json文件,把里面的命名空间改为你的命名空间

如果有更好的扩展方法欢迎交流下~~

phper666/easywechat-extension 适用场景与选型建议

phper666/easywechat-extension 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 04 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 phper666/easywechat-extension 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 phper666/easywechat-extension 我们能提供哪些服务?
定制开发 / 二次开发

基于 phper666/easywechat-extension 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 10
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-04-13