2016-08-17 14 views
1

Проблема:Что такое правильный способ использовать Satis с общей внутренней библиотеки

У меня есть юридические лица, которые и будут одинаковыми для 2-х проектов, написанных на Symfony. У нас есть идея поделиться ими между проектами. Первая идея заключалась в том, чтобы использовать подмодуль git, но всем известно, что это не самое удобное решение. Поэтому мы помещаем их в Satis как отдельный репозиторий git.

В одном проекте я хотел бы отредактировать их в каталоге приложений src/AppBundle/Entity с другой, они могут быть загружены в каталог vendor.

Вопрос в том, как настроить композитор, чтобы я мог работать с ними не в каталоге vendor. Как будут выглядеть коммиты? Для этого нужен субмодуль git?

Я уже читал около "type" : "path" для репозитория, я проверил установщиков композитора. Есть ли какое-нибудь другое решение, чем symlink, которое приходит мне на ум прямо сейчас?

Итак, подведем итоги.

Как работать с общей библиотекой в ​​одном проекте из каталога приложений, а в другом - в каталоге поставщиков?

+0

Я думаю, что вы можете попробовать с опцией '--prefer-source' Composer. Я не пробовал, поэтому я не буду публиковать его в качестве ответа, но эта ссылка может помочь http://dimsav.com/blog/9/git-repository-inside-composer-vendors –

+0

Предпочитаете, что источник будет загружен это из github/gitlab и т. д. вместо packagist/satis, так что это не пробник – Robert

+0

Он загрузит его в соответствии с вашей конфигурацией composer.json. Неважно, где находится репозиторий. –

ответ

0

Это решение, которое сработало для меня.

Я клонировал внутреннюю библиотеку в проект.

В основном проекте я добавил этот каталог .gitignore и composer.json я добавил следующие строки

"repositories": [ 
     { 
      "type": "path", 
      "url": "internal-library", 
      "options": { 
       "symlink": true 
      } 
     }, 
     { 
      "type": "composer", 
      "url": "http://our-satis" 
     } 
    ], 

В другом проекте я добавил только удовлетворяться хранилище (субъекты будут изменено только в одном проекте и импортировано в другое).

"repositories": [ 
      { 
       "type": "composer", 
       "url": "http://our-satis" 
      } 
     ], 

Так что теперь в разработке, когда я делаю обновление композитора, библиотека символически связана с каталогом поставщиков. Если у меня нет этого каталога, он получит от satis. В производстве репозиторий будет получать от satis, потому что моего руководства не существует. У меня были некоторые проблемы с загрузкой PSR, но все работает так, как ожидалось.

Я надеюсь, что это поможет кому-то, имеющему те же проблемы, что и я.