Композитор требует Ext-Zip не удается - PullRequest
3 голосов
/ 20 мая 2019

PHPStorm говорит мне, что мне нужно, чтобы composer требовал ext-zip, однако эта команда не выполняется ...

PHPStorm говорит

enter image description here

Я ввожу команду

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.

Ответы [ 3 ]

4 голосов
/ 20 мая 2019

Данная подсказка исходит от PhpStorm, а не от самого композитора: ваша IDE обнаружила, что ваш код использует метод (или в данном случае: класс ZipArchive), который доступен только при включенном расширении ZIP. Но ваше composer.json пока не содержало этого требования.

Итак, PhpStorm просит вас добавить это требование в файл JSON, чтобы сделать требования для выполнения вашего кода более точными. То, как вы решите это требование, зависит от вас: лучший способ - установить это расширение, но это не входит в компетенцию композитора

4 голосов
/ 20 мая 2019

Если ваш код работает нормально - на вашем компьютере уже установлено расширение zip. PHPStorm добавляет это предложение, чтобы гарантировать, что где-либо еще, где развернут проект, также есть правильные расширения.

Вручную добавьте строку в файл composer.json (require block) "ext-zip": "*", (и другие, которые он может предложить, например ext-apc, ext-redis и ext-json, а также любые другие, которые вы, возможно, используете), убедитесь, что при развертывании он также может проверить, что установлены соответствующие дополнительные элементы.

Это всего лишь предупреждение, и вы можете его проигнорировать - или вы можете позволить composer убедиться, что ваши серверы настроены так, как они необходимы для запуска вашего кода, и что-то делать с zip-файлами. Если на вашем сервере не установлен ext-zip, composer install будет жаловаться и перестанет сохранять проблемы позже, когда вы обнаружите, что код не работает без расширения zip, и др.

4 голосов
/ 20 мая 2019

Решение # 1 - добавьте ext-zip в нужный раздел composer.json:

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

Решение № 2 - установить расширение php-zip:

Windows

Раскомментируйте эту строку в вашем php.ini

; расширение = php_zip.dll

Linux:

sudo apt-get install php-zip

или

sudo apt-get install php7.0-zip (убедитесь, что вы ввели СВОЮ версию php, вы можете проверить свою версию с помощью команды php -v)

Затем вам нужно перезагрузить веб-сервер.

sudo service apache2 restart

...