2014-12-10 8 views
1

Моя команда и я разрабатываем бэк-офис с Symfony2, который управляет несколькими приложениями. Сейчас у нас есть только одно приложение, но в ближайшем будущем мы сможем управлять многими из них.Symfony2 - эффективно управлять несколькими версиями пакетов

Мы решили разработать каждый компонент (aka app) в отдельном комплекте.

Мы хотим, чтобы иметь возможность развертывать весь проект symfony2, не беспокоясь о слишком больших побочных эффектах между компонентами.

На деле, в идеале, мы хотели бы, чтобы иметь возможность развернуть version X компонента A и version Y компонента B при развертывании проекта в целом.

Для того, чтобы сделать это, вот варианты мы разведанные:

  • 1) Связки являются Git подмодуль
  • 2) Связки в репозитарии и управляется в основном composer.json проекта

Первый кажется законным, но я не уверен, что это хорошая практика: что вы думаете?

Вторым является правильный способ обработки зависимостей (и управления версиями), но очень плох с точки зрения производительности, поскольку мы должны подталкивать последнюю версию репозитория пакетов, а затем обновлять композитор, прежде чем, наконец, сможете проверить комплект в основном проекте.

Я знаю, что это открытый вопрос, но то, что я хотел бы иметь, - это некоторая обратная связь о хороших практиках в этом случае.

ответ

1

Подмодули Git раздражают из-за большого количества микроуправления, необходимого для их обновления. Я бы пошел с опционом 2.

Вы можете массовым образом улучшить рабочий процесс с помощью флага --prefer-source при установке.

composer install --prefer-source 

Это установит ваши зависимости, клонировав их репозитории в каталог поставщика. Затем вы можете работать с вашим компонентом и передать ему прямо из вашего проекта.

# You can make modifications to your component here 
cd vendor/vendorName/componentA 
git commit # Commit to your changes to the component repository