Как установить пакет PECL с composer? - PullRequest
2 голосов
/ 05 марта 2020

I sh для установки пакета PEAR (в частности, mongodb из pecl. php. net) с Composer.

Я могу установить пакет из основного канала груши со следующим composer. json:

{ "repositories": [{
            "type": "pear",
            "url": "https://pear.php.net"
        }],
    "require": { "pear-pear/http": "*" }
}

(примечание: оригинальный пример из https://getcomposer.org/doc/05-repositories.md#pear не работает)

Но я получаю:

Запрошенный пакет pear-pecl / mongodb не найден ни в одной версии , в имени пакета может быть опечатка

... когда я пытаюсь установить канал 'pecl':

"require": { "pear-pecl/mongodb": "*" }

Я вижу канал pecl с pear list-channels:

$ pear list-channels
Registered Channels:
====================
Channel      Alias   Summary
doc.php.net  phpdocs PHP Documentation team
pear.php.net pear    PHP Extension and Application
                     Repository
pecl.php.net pecl    PHP Extension Community Library

Я могу установить тот же пакет с pear install pecl/mongodb.

Ответы [ 2 ]

1 голос
/ 05 марта 2020

pecl/mongodb - бинарный драйвер. Я не вижу, как composer мог бы установить его локально в проект. Я не думаю, что вы сможете установить любое расширение PECL через composer.

Composer может управлять PHP зависимостями для проекта, и эти зависимости должны включать действительные composer.json файл, который можно идентифицировать как пакет.

Если вы проверите pecl / mongodb repo , вы не увидите ничего подобного. Это языковой проект C, который необходимо скомпилировать и установить как расширение времени выполнения.

Расширения PECL не предназначены для установки в проекте, и не имеет смысла это делать; но необходимо установить и включить для PHP времени выполнения. Когда вы запускаете pear install pecl/mongodb, вы устанавливаете двоичное расширение для всех проектов, использующих одну и ту же среду выполнения.

0 голосов
/ 05 марта 2020

Пакеты PECL не могут быть установлены с Composer из-за pecl. php. net Хранилище повреждено (см. https://bugs.php.net/bug.php?id=76719 и соответствующие заявки).

Может быть добавлен к composer. json с

{ "repositories": [
        {   "type": "pear",
            "url": "https://pecl.php.net"
        }],
    "require": {
       "pear-pecl/mongodb": "*"
    }}

, но установка не удалась из-за сбоя XML in https://pecl.php.net/rest/c/Authentication/packagesinfo.xml

...