Установленные модули Composer ОС независимы?

Я знаю, что приведенный ниже сценарий далек от современных лучших практик, но давайте попробуем.

Давайте предположим, что:

  1. у вас есть среда разработки и сервер с той же версией PHP, но с разными ОС.
  2. Вы хотите / должны развернуть папку вашего поставщика на сервере как есть.

Насколько вероятно, что: некоторые пакеты не будут работать из-за переключения ОС И сбоя можно было бы избежать, если бы они были установлены из файла компоновщика json на сервере (то есть они не полностью зависят от платформы)?

Я знаю из этого вопрос что абсолютные пути, установленные во время установки, могут быть проблемой. Есть ли другие возможные проблемы?

0

Решение

Вероятность довольно высока, потому что композитор будет работать по-разному в зависимости от настроек среды.

Простой пример этого будет https://getcomposer.org/doc/articles/scripts.md

который может запускать пользовательскую логику в зависимости от установленных компонентов и готовить что-то только в том случае, если в хост-системе есть что-то доступное, которое не имеет никакого отношения к composer.lock

Основная проблема заключается в том, что вы хотите повторно использовать папку поставщика. Композитор не работает таким образом, и именно поэтому vendor часто упоминается в файле .gitignore.
composer будет вести себя по-разному в зависимости от среды, и его результат не должен копироваться.
Если вы хотите привести поведение в соответствие между ОС, используйте Docker или vagrant для стабилизации приложения и его среды.

1

Другие решения

Они должны быть независимы от ОС, пока вы фиксируете composer.lock в ваш проект. Точка composer.lock это установить те же пакеты по composer install не зависит от ОС, а сам Composer не использует никаких абсолютных путей (по умолчанию). На самом деле композиторы сопровождающие не рекомендуется использовать его в производстве и многие проблемы были закрыты с помощью «Composer не инструмент развертывания» в качестве причины. Таким образом, вы должны иметь возможность перемещать установки между средами, и в каждой системе вы будете получать одинаковые пакеты, установленные composer install,

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


Итак, вкратце: Да, установки не зависят от ОС (если вы не сделаете что-то, это изменит это).

0

По вопросам рекламы [email protected]