Какова наилучшая практика для одновременной разработки библиотеки и основного проекта Composer? - PullRequest
0 голосов
/ 29 сентября 2018

Я очень стараюсь понять, как лучше использовать Git для разработки основных проектов и библиотек.Я попытаюсь объяснить: я разрабатываю проект и библиотеку одновременно.Они оба на GitHub.А вот мой текущий рабочий процесс:

  1. Внесите изменения в библиотеку
  2. Зафиксируйте и отправьте в GitHub, сделайте выпуск и обновление на Packagist
  3. Выполнитеcomposer update в основном проекте, чтобы загрузить новую версию библиотеки
  4. Выполнить тест с новой версией библиотеки

Это слишком сложно и неправильно.Что такое тренировка для этой проблемы?У меня есть опция:

  • Определить библиотеку как локальный репозиторий и поместить это определение в файл composer.json основного проекта. Но это странно, потому что тогда, если я загружу composer.json в GitHub, он будет содержать определение локального репо, что неверно.

Возможно, есть какой-то умный и крутойспособ избавиться от этой проблемы, но я не знаю об этом.Пожалуйста, объясните, как это сделать.Заранее спасибо.

PS Я использую PhpStorm, возможно, у него есть опция, которая может помочь нам решить проблему.

1 Ответ

0 голосов
/ 29 сентября 2018

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

Вы можете добавить репозиторий с помощью CLI-файла композитора (см. docs ), но этогораздо проще просто обновить файл composer.json вручную.

Откройте файл composer.json и найдите атрибут repositories (если его там нет, создайте его в корневой области видимости).

Это должен быть массив объектов, и каждый объект должен иметь тип (vcs для системы управления версиями) и URL.

Также добавьте свою библиотеку в require.Вы можете использовать теги git version, если хотите, но указание на dev-master является очень распространенной практикой.

{
    "name": "mainproject",
    "description": "Main project development",
    "repositories": [{
        "type": "vcs",
        "url": "ssh://git@my-git-server-url.com/library.git"
    }],
    "require": {
        "library/library": "dev-master"
    }
}

Когда вы обновили свою библиотеку (и поместили изменения в хранилище), вы можете просто запуститьcomposer update library/library из вашего основного проекта разработки, чтобы получить все изменения из вашей библиотеки.

...