Композитор требует ext-zip не работает

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

PHPStorm говорит

Композитор требует ext-zip не работает

Команда, которую я даю,

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.

Что заставляет вас думать, что вы должны установить его с помощью композитора? Это расширение PHP, которое вы должны установить либо через систему пакетов вашей ОС, либо загрузив его вручную.

Nico Haase 20.05.2019 13:21

Я обновил вопрос скриншотом из моей IDE.

Jeffrey L. Roberts 20.05.2019 13:28

И тем не менее, это расширение не должно быть установлено с помощью композитора

Nico Haase 20.05.2019 13:31

Я обновил вопрос со снимком экрана с более подробной информацией ... Если он не должен быть установлен с композитором, возможно, композитор должен сообщить пользователям приложения, что требуется расширение?

Jeffrey L. Roberts 20.05.2019 13:33

Ну, я думаю, он не отсутствует, просто ваша IDE говорит, что его нет в composer.json, но это часть расширения PHP. Есть ли у вас какие-либо ошибки при выполнении кода? Если да, пожалуйста, поделитесь им с нами.

Karol Gasienica 20.05.2019 13:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
21
5
33 543
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Решение №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

Nico Haase 20.05.2019 13:41

И можете ли вы добавить немного объяснение, которое объясняет, почему сообщение появилось изначально, и что ваш код делает против этого?

Nico Haase 20.05.2019 14:02

Отвечает stackoverflow.com/a/56220471/38408, ext-зависимости в композиторе — это системные требования, которые композитор может проверять, но не управлять. Вместо этого для настройки сервера с этими пакетами используются другие механизмы конфигурации сервера.

Grayside 20.05.2019 23:54

Данная подсказка исходит от 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 только из-за этого :)

OZZIE 13.12.2019 12:58

Другие вопросы по теме