修复私有化的 easywechat 包问题: Package "w7corp/easywechat" is not installed
由于 w7corp/easywechat
这个包最新的 6.x 版本非常不靠谱,但无奈已经上了贼船,所以纵然有很多不满,都得含着泪往下吞。
自己约的炮,含着泪也要打完。
自从升级到 6.x
版本后,就经常遇到 composer install 安装失败的问题。一开始我以为是我自己的问题,后来搞着搞着问题就自己解决了,也没深究原因。
直到这次新项目生产环境始终安装不上,我意识到问题的严重性了,于是搜了一下,果然很多网友反馈这个包不靠谱。
但无奈已经上了贼船,于是我心生一计,既然官方这么不靠谱,那就私有化这个包,自己建个仓库。
于是就有了 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
安装的话)下貌似执行不到这里。