У меня есть машина Vagrant с актуальной версией PHP, на которой я хочу запустить мой сервер, но локально я использую более новую версию PHP.
Обновление Composer локально просто экономит так много времени, а не обновляет его на виртуальной машине через SSH.
Итак, мой вопрос: это влияет на файлы поставщика, когда composer install
или же update
вызывается из разных версий PHP?
Версия PHP, используемая при обновлении зависимостей, влияет на используемые пакеты. Пакеты могут определять требования для определенной версии PHP.
Распространенным требованием является наличие PHP 5.4 или 5.5, когда пакет использует функции указанных версий, или PHP 5.3.3 или PHP 5.3.27, потому что пакет требует определенных исправлений.
Композитор будет жаловаться на невозможность выполнить composer install
если версия PHP, используемая при выполнении этой команды, не в состоянии выполнить все требования к версии PHP, указанные в файле блокировки.
Бег composer update
с более старой версией PHP, чем composer install
вероятно, будет работать в большинстве случаев. Однако рекомендуется использовать ту же версию PHP.
Также: использование одинаковых обязательных расширений во всех версиях PHP также необходимо для проверки требований.
Обратите внимание, что Composer требует, чтобы на целевой платформе присутствовала данная версия или расширение PHP, даже если PHP командной строки, выполняющий команду Composer, не выполняет их, но эта функция еще не реализована. Таким образом, нет способа переопределить локальную версию PHP той, которая присутствует в целевой среде.
Других решений пока нет …