从Prov2.2版本之后composer安装的扩展基本要求php版本要在7.4之上包括7.4
为了用户安装可以选择多个php版本,无奈之下改了vendor兼容了7.1-7.4版本,但是我们强烈建议您使用php7.4版本。
如果开发者想更新composer一定要切换到php7.4版本进行安装扩展;
问题1:composer update 更新后队列无法执行,各种报错
可能原因: 可能原因是自动升级了think-queue;可能原因是升级了各种扩展导致不兼容或者类文件丢失等等。问题很多;
处理方法:不要盲目使用composer update,如果需要更新某个扩展请使用:
问题2:多个php版本开发中应该选择哪个版本?
答: 果断选择PHP7.4,可能会在之后版本逐渐淘汰7.4之下的版本;也是为了更好的性能;
问题3: composer怎么安装指定版本扩展?
答: composer require 扩展名:~5.0
问题4:安装扩展后,后台前台无法访问?
答: 检查vendor/services.php
文件内是否是空的,如果是空的。那就是证明安装到最后一步执行php think service:discover
失败了,可以直接执行:composer dump-autoload
。然后去看vendor/services.php
文件是否恢复正常
问题5:composer2.0版本安装扩展后执行php think service:discover
还是无法访问?
找到vendor\topthink\framework\src\think\console\command\ServiceDiscover.php
文件
32行左右,在此行上增加代码,如下代码,然后保存,在执行php think service:discover
if (isset($packages['packages'])) {
$packages = $packages['packages'];
}
$services = [];
foreach ($packages as $package) {
if (!empty($package['extra']['think']['services'])) {
$services = array_merge($services, (array) $package['extra']['think']['services']);
}
}
修改了topthink底层文件是否影响之后的扩展安装,肯定是会的。还有一种办法就是升级·topthink框架,框架已经兼容了composer2.0版本的上述问题
问题6:按照上面两种办法都不能正常访问网站?
手动修改vendor/services.php
文件,在文件中增加如下代码
return array (
0 => 'think\\captcha\\CaptchaService',
1 => 'think\\app\\Service',
2 => 'think\\queue\\Service',
);
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}