Разработка с composer с первого взгляда выглядит как нечто дико непонятное, особенно, когда сталкиваешься с проблемами разрешения конлфиктов/зависимостей и т.п. Это происходит до тех пор, пока не начнешь вникать. А когда начинаешь вникать, понимаешь насколько это глобальный, мощный и полезный инструмент. Тут несколько полезных для меня вариантов использования дабы не забыть (а значит будет пополняться)
Как внести правки в пакет, который уже установлен в системе:
-
в
composer.json
устанавливаем версию разработки, напримерdev-master
(которая может служить алиасом на другую ветку для разработки) -
обновим зависимость с использованием исходного кода, дабы можно было использовать контроль версий и отправить изменения в git:
composer upgrade --prefer-source repository/package-name
-
Теперь в папке с модулем можно вносить изменения и коммитить в репозиторий
-
После изменений необходимо установить необходимую версию и обновить пакет:
composer update repository/package-name
Бывает, что при выполнении этих команд в папке не появляется
.git
, в этом случае можно попробовать переименовать (удалить) папку с пакетом и запустить снова команду обновления —composer update --prefer-source repository/package-name
Установка зависимостей (vendor) без установки composer (глобально)
Для установки можно использовать
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer {{COMMAND}}
Либо, когда установку блокируют различные зависимости, которых нет в образе можно использовать ключи --ignore-platform-reqs --no-scripts
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer install --ignore-platform-reqs --no-scripts
Источники
- Command-line interface / Commands — Composer
- Composer — Official Image | Docker Hub
- PHP extension unavailable to composer container in docker-compose — Stack Overflow