找回密码
 立即注册
首页 业界区 安全 composer报错的处理方案

composer报错的处理方案

叟澡帅 7 天前
composer报错的核心问题有两个。
一、因为composer的版本,依赖于php的版本。
而php的版本又很可能是我们的运行环境决定的。
所以一旦出现版本冲突问题就很奇葩。
比如,运行环境的版本是php5.6,
而composer运行的依赖环境是php8。
这时候就需要安装多个版本的php,运行时,还需要控制不同版本。

二、因为很多依赖会写成大于等于什么版本。
于是当composer update成功执行后。各种最新版本,会导致各种报错。
毕竟绝大部分开发者不会想到php的版本向前根本不兼容,并且还抛弃。

所以,要解决composer报错。就需要针对两个核心问题去处理。
以下是可能的方法。
1、
初次安装
composer install
更新安装
composer updateP
更新依赖路径
composer 里加一个 "" : "./Applications/YourApp/"
    "autoload": {
        "psr-4": {
            "" : "./",
            "" : "./Applications/YourApp/"
        }
    }
然后执行 composer dump-autoload
2、
忽略错误时的安装
composer update --ignore-platform-reqs
3、有时候需要清理缓存后再安装
composer clear-cache

4、在composer中,添加平台约束。
这样才能确保更新的文件,不超过运行环境的版本。
不然会自动安装成最新版本。而php的各版本之间,根本不兼容。所以会出各种问题。
{  
  "config": {  
    "platform": {  
      "php": "7.4.33"  
    }  
  }  
}  
5、更新composer版本以配合运行环境。
sudo composer self-update 2.2.2
6、composer回到对应的状态
sudo composer self-update --rollback
7、
当更新报错时,可能因为php缺少扩展。需要安装xml、dom、zip扩展。
例如:

Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - Root composer.json requires wander/wepay ^1.0 -> satisfiable by wander/wepay[v1.0.4].
    - wander/wepay v1.0.4 requires ext-xml * -> it is missing from your system. Install or enable PHP's xml extension.
  Problem 2
    - Root composer.json requires wechatpay/wechatpay ^1.4 -> satisfiable by wechatpay/wechatpay[1.4.0, ..., 1.4.12].
    - wechatpay/wechatpay[1.4.0, ..., 1.4.12] require ext-simplexml * -> it is missing from your system. Install or enable PHP's simplexml extension.
  Problem 3
    - qcloud/cos-sdk-v5[v2.6.0, ..., v2.6.16] require ext-simplexml * -> it is missing from your system. Install or enable PHP's simplexml extension.
    - Root composer.json requires qcloud/cos-sdk-v5 ^2.6 -> satisfiable by qcloud/cos-sdk-v5[v2.6.0, ..., v2.6.16].
To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.4/cli/php.ini

8、但直接安装,可能由于ubuntu20.04版本问题,没有对应的包,所以需要先更新一下可安装的包。
sudo apt-get install software-properties-common
sudo add-apt-repository ppandrej/php
sudo apt-get update
再进行安装。
sudo apt-get install php7.4
sudo apt-get install php7.4-xml php7.4-dom php7.4-simplexml php7.4-zip
最后,在重复从一开始的步骤。




来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册