PHPStorm сказал мне, что мне нужно, чтобы композитор требовал 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.
Я обновил вопрос скриншотом из моей IDE.
И тем не менее, это расширение не должно быть установлено с помощью композитора
Я обновил вопрос со снимком экрана с более подробной информацией ... Если он не должен быть установлен с композитором, возможно, композитор должен сообщить пользователям приложения, что требуется расширение?
Ну, я думаю, он не отсутствует, просто ваша IDE говорит, что его нет в composer.json, но это часть расширения PHP. Есть ли у вас какие-либо ошибки при выполнении кода? Если да, пожалуйста, поделитесь им с нами.






Решение №1 - добавьте ext-zip в нужный раздел composer.json:
{
"require" : {
"ext-zip": "*"
}
}
Решение №2 - установить расширение php-zip:
Окна:
Раскомментируйте эту строку в вашем php.ini
;extension=php_zip.dll
Линукс:
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
Можете ли вы объяснить, как это решает данное сообщение? IDE, очевидно, дает некоторую связь с composer.json
И можете ли вы добавить немного объяснение, которое объясняет, почему сообщение появилось изначально, и что ваш код делает против этого?
Отвечает stackoverflow.com/a/56220471/38408, ext-зависимости в композиторе — это системные требования, которые композитор может проверять, но не управлять. Вместо этого для настройки сервера с этими пакетами используются другие механизмы конфигурации сервера.
Данная подсказка исходит от PhpStorm, а не от самого композитора: ваша IDE обнаружила, что ваш код использует метод (или в данном случае: класс ZipArchive), который доступен только при включенном расширении ZIP. Но ваш composer.json пока не содержал этого требования.
Итак, PhpStorm просит вас добавить это требование в файл JSON, чтобы сделать требования для запуска вашего кода более точными. Как вы решаете это требование, зависит от вас: лучшим способом было бы установить это расширение, но это выходит за рамки композитора.
Если ваш код работает нормально, расширение zip уже установлено на вашем компьютере. PHPStorm добавляет это предложение, чтобы убедиться, что везде, где развернут проект, также есть правильные расширения.
Добавление вручную строки в файл composer.json (блок require) "ext-zip": "*", (и других, которые он может предложить, например ext-apc, ext-redis и ext-json, а также любых других, которые вы можете использовать) гарантирует, что при развертывании composer также может проверить, установлены ли соответствующие дополнительные элементы.
Это всего лишь предупреждение, и вы можете его игнорировать - или вы можете позволить композитору убедиться, что ваши серверы настроены так, как они потребуются для запуска вашего кода, и делать что-то с zip-файлами. Если на вашем сервере не установлен ext-zip, composer install пожалуется и остановится, сохраняя проблемы позже, когда вы обнаружите, что код не работает без расширения zip и т. д.
конечно, но что, если я просто разозлюсь, увидев весь код, помеченный как какая-то ошибка в IDEA, я не хочу его видеть или изменять composer.json только из-за этого :)
Что заставляет вас думать, что вы должны установить его с помощью композитора? Это расширение PHP, которое вы должны установить либо через систему пакетов вашей ОС, либо загрузив его вручную.