Обновление Composer: отсутствует запрошенное расширение PHP ext-http - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю сайт php с использованием фреймворка Symfony и композитора.

  • Операционная система: Windows 10
  • Версия PHP: 7.3.2
  • Symfony:4.2.3 (env: dev, debug: true)
  • Композитор: 1.8.4 (2019-02-11)

Когда я пытаюсь сделать compose update внутри проектовпапку или когда я пытаюсь установить пакет, используя composer require symfony/swiftmailer-bundle, я получаю следующую ошибку:

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

  Problem 1
    - The requested PHP extension ext-http * is missing from your system.
      Install or enable PHP's http extension.

(написано «Проблема 1», но это единственная проблема в списке.)

Я уже искал расширение в своем файле php.ini, но не могу его найти.Нужно ли устанавливать расширение вручную?Если да, где я могу его найти?

Заранее спасибо!

Ответы [ 4 ]

0 голосов
/ 14 февраля 2019

Решение найдено.По какой-то причине мой composer.json содержал "ext-http": "*".

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

Удаление этой строки устранило проблему.Я не знаю, почему он содержал "ext-http": "*", и я не до конца понимаю, почему его устранение решило бы проблему.(Это потому, что он ищет расширение, но не может его найти?)

(Спасибо всем, кто пытается помочь мне решить проблему!)

0 голосов
/ 13 февраля 2019

Согласно Официальной документации PHP , вам нужно будет найти свое расширение в php.ini и раскомментировать его, ИЛИ добавить его вообще.Это, наверное, что-то вроде extension=php_http.dll.

0 голосов
/ 14 февраля 2019

php-http - это стандарт, который реализуется различными пакетами.ext-http - это способ, которым Composer сообщает, что вашему приложению требуется хотя бы один из этих пакетов.Дополнительные сведения см. В разделе «Виртуальные пакеты Composer» по адресу http://docs.php -http.org / ru / latest / clients.html .

В отличие от других пакетов, ext-...На самом деле строки ничего не устанавливают через composer, они просто проверяют, что у вас есть требуемая зависимость.Обычно вы можете просто установить соответствующую библиотеку PHP, например, ext-zip означает, что вам нужно установить php-zip.В этом случае нет ни одной библиотеки PHP, а есть ряд совместимых библиотек.

Вы сможете исправить проблему, установив один из предоставленных пакетов, например

composer require php-http/curl-client
0 голосов
/ 13 февраля 2019

Вы уже пробовали варианты здесь для подобных проблем?

Я еще не сталкивался с этой проблемой в стеках WAMP ... но похоже, что некоторые связанные статьи (где этот конкретный элемент 'ext-http' не является проблемой) могут быть полезны.

Когда яУ меня были похожие проблемы со стеками LAMP, обычно это означало, что мне нужно было установить упомянутый элемент ... хотя иногда Composer вводил в заблуждение относительно необходимого элемента.


Пример № 1 (ЛАМПА) ... необходим фактический описанный элемент:

composer require phpoffice/phpspreadsheet
  • Произошла ошибка: missing php-mstring

  • Решение:

    yum install php-mbstring


Пример № 2 (ЛАМПА) ... что-то немного отличающееся от описанного элементанеобходимо:

composer require phpoffice/phpspreadsheet
  • Произошла ошибка: missing ext-zip

  • Решение:

    yum install php-pecl-zip


Также, возможно работает композитор в подробном режиме ?

Но я думаю, что вам лучше всего начать с первой ссылки, приведенной в этом ответе (а затем просмотреть похожие проблемы с отсутствующими элементами WAMP Composer).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...