Composer 要求 ext-zip 失败

Composer require ext-zip fails

PHPStorm 告诉我我需要 composer require ext-zip,但是,该命令失败了...

PHPStorm 说

我发出的命令是

composer require ext-zip

结果

Your requirements could not be resolved to an installable set of packages.

Installation failed, reverting ./composer.json to its original content.

解决方案 #1 - 将 ext-zip 添加到 composer.json 的所需部分:

{
    "require" : {
        "ext-zip": "*"
    }
}

解决方案 #2 - 安装 php-zip 扩展:

Windows:

在 php.ini

中取消注释这一行

;extension=php_zip.dll

Linux:

sudo apt-get install php-zip

sudo apt-get install php7.0-zip (make sure you typed YOUR php version, you can check your version by doing php -v command)

然后,您需要重新启动您的网络服务器。

sudo service apache2 restart

给定的提示来自 PhpStorm,而不是作曲家本身:您的 IDE 检测到您的代码使用了一种方法(或在本例中为:ZipArchive class)仅在启用 ZIP 扩展名时可用。但是您的 composer.json 到目前为止还没有包含该要求。

因此,PhpStorm 要求您将此要求添加到 JSON 文件中,以使 运行 您的代码的要求更加精确。如何解决该要求取决于您:最好的方法是安装该扩展,但这超出了作曲家的范围

如果您的代码 运行 没问题 - 您已经在计算机上安装了 zip 扩展。 PHPStorm 添加此建议以确保项目部署的任何其他地方也具有正确的扩展。

在您的 composer.json 文件中手动添加该行(require 块)"ext-zip": "*",(以及它可以建议的其他行,例如 ext-apcext-redisext-json,以及您可能正在使用的任何其他项目)将确保当您部署它时,作曲家还可以检查是否安装了适当的额外项目。

虽然这只是一个警告,您可以忽略它 - 或者您可以让 composer 确保您的服务器已设置为 运行 您的代码所需的服务器,并使用 zip-files。如果您的服务器没有安装 ext-zip,composer install 会抱怨并停止 - 稍后当您发现代码在没有 zip 扩展名的情况下失败时保存问题等