Для меня решением было удалить --ignore-platform-reqs
. Для любых ориентированных на будущее пакетов (например, любого пакета Ocramius) это либо приведет к серьезному сбою, как это произошло, либо у вас будет несколько странных ошибок, причину которых вы не можете отследить.
Что делает --ignore-platform-reqs
, так это отключает проверки, которые делает Composer, чтобы гарантировать, что работают только пакеты, совместимые со средой. В этом случае в пакете-нарушителе было последнее обновление для использования PHP 7.4, и случилось так, что в установщике Composer использовались объявления нового типа свойства.
Я боролся с несколькими другими странностями (например, с ошибкой Entity Manager Doctrine случайным образом, другим пакетом, связанным с Ocramius), и все они исчезли, сняв флаг при запуске Composer. Какой бы ни была причина, по которой мне это было нужно лет go, я больше не нуждаюсь.
Если вы чувствуете, что вам это нужно, посмотрите config.platform
, который, кажется, позволяет вам от l ie до Composer, или поработайте, чтобы полностью удалить этот флаг (почему вы думаете, что он вам нужен, избавьтесь от этого, если возможно).
Позволяет вам поддельные пакеты платформы (PHP и расширения), чтобы вы могли эмулировать продакшн env
или определить целевую платформу в config. Пример: {"php": "7.0.3", "ext-something": "4.0.3"}
.
https://getcomposer.org/doc/06-config.md#platform