作曲家要求ext-zip失败

Jef*_*rts 6 php phpstorm composer-php

PHPStorm告诉我,我需要作曲家需要ext-zip,但是,该命令失败了...

PHPStorm说

在此处输入图片说明

我发出的命令是

composer require ext-zip
Run Code Online (Sandbox Code Playgroud)

结果是

Your requirements could not be resolved to an installable set of packages.
Run Code Online (Sandbox Code Playgroud)

Installation failed, reverting ./composer.json to its original content.
Run Code Online (Sandbox Code Playgroud)

Yev*_*nko 25

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

{
    "require" : {
        "ext-zip": "*"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

视窗:

在 php.ini 中取消注释这一行

;扩展名=php_zip.dll

Linux:

须藤 apt-get 安装 php-zip

或者

sudo apt-get install php7.0-zip (确保你输入了你的php版本,你可以通过执行 php -v 命令来检查你的版本)

然后,您需要重新启动 Web 服务器。

须藤服务 apache2 重启

  • /sf/answers/3935433001/ 的回答是,composer 中的 ext-dependencies 是 composer 可以验证但不能管理的系统要求。相反,其他服务器配置机制用于使用这些包设置服务器。 (2认同)

Nic*_*ase 8

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

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


Ali*_*man 6

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

手动添加一行在composer.json文件(require块)"ext-zip": "*",(和其他人,它可以建议,比如ext-apcext-redisext-json,以及任何其他人,你可能会使用)将确保在部署它作曲家还可以检查适当的额外项目已安装。

不过,这只是一个警告,您可以忽略它-或可以让作曲家确定服务器的设置如运行代码和使用zip文件所需的设置。如果您的服务器未安装ext-zip,composer install则会抱怨并停止-稍后发现问题,如果您发现没有zip扩展名的代码失败,则会保存问题,等等。