composer install -n --ignore-platform-reqs не игнорируя расширение PHP - PullRequest
1 голос
/ 30 марта 2019

у нас есть круговая сборка, которая работает composer install -n --ignore-platform-reqs --no-dev, но это больше не игнорирует требования платформы.

Это то, что я вижу в круговом журнале.--ignore-platform-reqs явно не работает.Есть идеи, почему, пожалуйста?

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

  Problem 1
    - Installation request for drupal/core 8.6.13 -> satisfiable by drupal/core[8.6.13].
    - drupal/core 8.6.13 requires ext-pdo * -> the requested PHP extension pdo is missing from your system.
  Problem 2
    - typo3/phar-stream-wrapper v2.1.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - typo3/phar-stream-wrapper v2.1.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - Installation request for typo3/phar-stream-wrapper v2.1.0 -> satisfiable by typo3/phar-stream-wrapper[v2.1.0].

Ответы [ 2 ]

2 голосов
/ 30 марта 2019

Вместо использования --ignore-platform-reqs или provide хака лучше имитировать вашу среду, используя настройку platform - она ​​дает вам больший контроль над требованиями платформы и более интуитивна, чем provide (ваш пакет на самом деле не предоставляет ext-fileinfo):

"config": {
    "platform": {
        "php": "7.2.14",
        "ext-fileinfo": "1.0.5",
        "ext-pdo": "7.2.14",
        "ext-session": "7.2.14",
        "ext-iconv": "7.2.14",
        "ext-zip": "1.15.4"
    }
},

Актуальные версии расширений, которые вы можете найти, вызвав эту команду в производственной среде (хотя вы, возможно, могли бы поместить что-либо для версии расширений - довольно редко можно использовать что-либо, кроме * в качестве ограничения для расширений PHP):

composer show -p
0 голосов
/ 30 марта 2019

Я собираюсь ответить на свой вопрос на всякий случай, если кто-то споткнется здесь. Добавление файла со списком расширений в мой файл composer.json решило проблему для меня. Это --ignore-platform-reqs не имело никакого эффекта.

 "provide": {
        "ext-fileinfo": "*",
        "ext-pdo": "*",
        "ext-session": "*",
        "ext-iconv": "*",
        "ext-zip": "*"
    }
...