Разработка публичной библиотеки + composer

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

Самая последняя версия

Подключаю самые последние версии библиотек (версии у которых даже нет тегов версий), для этого в файле composer.json указываю сразу два момента:

1. указываю расположение библиотеки:

"repositories": [
        { "type": "git", "url": "https://github.com/yapro/apiration-bundle.git"},
]

2. указываю дев-ветку библиотеки:

"require": {
    "yapro/apiration-bundle": "dev-master",
}

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

Root composer.json requires yapro/apiration-bundle *, found yapro/apiration-bundle[dev-master] but it does not match your minimum-stability

Директория .git при разработке

Чтобы в случае обнаружения проблемы в библиотеке или доработки фичи в библиотеке, я мог внести исправления в библиотеку не отрываясь от работы над проектом, я в Dockerfile (только при разработке или CI) указываю:

ENV COMPOSER_HOME=/tmp/composer-home
RUN mkdir $COMPOSER_HOME
# Сохраняем конфигурацию глобально в файле: $COMPOSER_HOME/config.json
RUN composer config --global "preferred-install.yapro/*" source
# Check alternative: composer update yapro/* --prefer-source
RUN chmod -R 777 $COMPOSER_HOME

Это позволят мне внести изменения в библиотеку находящуюся в директории vendor/my/lib, закомитить и запушить, а следом я выполняю команду:

composer update "yapro/*"

Еще способ

Не пробовал, но по идее должен работать способ:

{
    "config": {
        "preferred-install": {
            "yapro/apiration-bundle": "source",
            "*": "dist"
        }
    }
}

или даже так:

{
    "config": {
        "preferred-install": {
            "yapro/*": "source",
            "*": "dist"
        }
    }
}

11.09.2021 07:08

Комментарии

Комментариев пока нет.


Copyrights © 2007 - 2026 YaPro.Ru