2014-09-17 6 views
1

Я уже на полпути с проектом в Symfony2.Предложения о том, как использовать контроль версий и композитор с symfony2

Мне нужно установить пару новых пакетов поставщиков, используя композитор.

У меня уже есть все (минус журналы, cache и parameters.yml) в управлении версиями (включая папку поставщика).

Проблема при использовании обновления для композитора удаляет папки .svn в папках поставщиков, где они обновляются. Таким образом, в настоящее время это невозможно сделать сейчас (дает мне не рабочую копию).

Дополнительная информация: Я работаю локально и передаю серверу dev, а затем после утверждения сервера приложений. Поэтому он должен быть идеальным (не может просто запускать установку php-композитора или обновление php-композитора на сервере dev/application после фиксации).

Я также пытался экспортировать все и копировать и вставлять их обратно в репо, но это также не сработало (индексная страница ломалась локально).

ответ

0

Я был в аналогичной ситуации два года назад.

Трудный урок, который я узнал, был never для редактирования файлов внутри вендора. Сначала я полностью отказался от использования composer и вручную клонировал все, что мне нужно. Позже я решил разветвить проекты, которые мне нужно было отредактировать, и ссылался на мои вилки.

Композитор поддерживает частные репозитории GitHub - вам не нужно регистрировать его в Packagist, чтобы работать.

0

Вы не должны хранить свой каталог vendor в своем контроле версий. Вот как это делается в Symfony Standard Edition, и вы должны следовать этому. Запуск команды composer install должен быть частью вашего процесса развертывания.

0

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

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

1

Что касается версии поставщика, лучший способ - это не производители версий вообще.

Единственное, что вам нужно для версии: composer.json и composer.lock. Это может вызвать проблемы с поставщиками, у которых нет стабильных версий или с теми, для которых вам не нужен стабильный (например, мастер с конкретным фиксатором).

В качестве решения вы должны создать свой собственный (закрытый) репозиторий поставщиков (скажем, собственный упаковщик). У композитора есть инструмент для этого, который называется Satis.

https://github.com/composer/satis

Так что мое предложение было бы:

  1. Создать частный репозиторий с Satis. Вы размещаете каждый пакет, который вам нужен, в satis.json, и всякий раз, когда вам нужно обновить версию поставщика или добавить новую, вы можете только модифицировать сасис.json и перестраивать репозиторий.
  2. В вашем проекте composer.json вы устанавливаете свой новый приватный репозиторий как единственный репозиторий и устанавливаете опцию: packagist - false.
  3. Теперь, каждый раз, когда вы запускаете composer install он будет использовать только ваше личное хранилище, так что это быстро, и вы всегда уверены, что каждый environemnt имеет те же версии

-

 Смежные вопросы

  • Нет связанных вопросов^_^