EagleMoor
@EagleMoor
PHP Yii2 RESTful API Developer

Как организовать переносимый пакет?

Всем привет. Встал интересный вопрос.

Для нескольких проектов я сделал библиотеку расширяющую yii2 которую подключаю через composer. Саму библиотеку я так же обернул в git и теперь когда правлю ее файлы в проекте я отдельно вижу git самого проекта и отдельно git моего пакета. Пока это работает в рамках одного проекта все хорошо и предсказуемо.

Но вот я запустил еще 2 проекта и в каждом из них моя библиотека уже работает как пакет composer. Если я вношу в эту библиотеку изменения, то они соответственно не попадают в git. Как быть в такой ситуации? И как быть с тем, что если новые изменения попадут с одного проекта в git библиотеки, то все другие проекты должны жестко фиксироваться на старой версии и без необходимого требования не обновлялись до последней версии.

1. Как организовать библиотеку, подключаемую через composer, в 3+ проекта и комитить изменения из любого проекта?
2. Как ограничивать версию пакета для проекта?
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
@matperez
Принципиально, вам нужно разделить изменение библиотеки и подключение ее к другим проектам через composer. Т.е. коммитить изменения "из любого проекта" не получится, только напрямую в библиотеку и потом вытягивать обновления в текущий проект.

Если хотите фиксировать версию библиотеки в данном проекте, при описании приватной репы в composer.json можно указать номер ревизии или ветку (через атрибут reference)
"source": {
              "url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
              "type": "git",
              "reference":"master"
            }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы