由于 w7corp/easywechat 这个包最新的 6.x 版本非常不靠谱,但无奈已经上了贼船,所以纵然有很多不满,都得含着泪往下吞。

自己约的炮,含着泪也要打完。

自从升级到 6.x 版本后,就经常遇到 composer install 安装失败的问题。一开始我以为是我自己的问题,后来搞着搞着问题就自己解决了,也没深究原因。

直到这次新项目生产环境始终安装不上,我意识到问题的严重性了,于是搜了一下,果然很多网友反馈这个包不靠谱。

2023-10-18T05:53:59.png

但无奈已经上了贼船,于是我心生一计,既然官方这么不靠谱,那就私有化这个包,自己建个仓库。

于是就有了 lucups/easywechat 这个库。

安装完以后,生产环境工作的很好,但本地却报错:

Package "w7corp/easywechat" is not installed

搜了一下,找到了 EasyWeChat\Kernel\Support\UserAgent 类的第 46 行:

if (class_exists(InstalledVersions::class)) {
    array_unshift($value, 'easywechat-sdk/'.((string) InstalledVersions::getVersion('w7corp/easywechat')));
    }

这里检查了指定包的版本,注意这里是写死的 'w7corp/easywechat',改成我自己的包名 'lucups/easywechat' 就可以了。

改完之后,重新发布,重新 composer install,问题解决。

PS: 生产环境(也就是使用 composer install --no-dev 安装的话)下貌似执行不到这里。

标签: easywechat