Это то, о чем я думал в течение достаточно долгого времени, но я не могу найти правильный способ сделать это.
В общем, я работаю с 6 различными сайтами, все работают под управлением Magento CE 1.9.2+
На этих сайтах я использую набор расширений, которые были разработаны мной и командой, с которой я работаю (здесь мы говорим о 50+ расширениях), и код для этих расширений хранится в Bitbucket. Так что я не единственный, кто управляет этими расширениями, над ними работают 3 человека.
В настоящее время, когда я хочу добавить функцию / исправить ошибку для одного из этих расширений, вот мой рабочий процесс:
- Установите последнюю версию расширения на одном из сайтов через Modman
- Исправить ошибку / добавить функцию / тест
- Вручную скопируйте изменения в локальную папку, содержащую все мои расширения
- Зафиксируйте и отправьте через GIT из этой папки расширения в Bitbucket (1 репозиторий Bitbucket на модуль)
- Тогда новая версия модуля может быть установлена через Modman
Важное примечание: я использую modman с печатной версией здесь, без символической ссылки.
Моя самая большая проблема была выделена жирным шрифтом: я хочу иметь возможность пропустить этот шаг, потому что это большая причина проблем (некоторые файлы иногда забываются, неправильное копирование / вставка, связано с человеческими действиями).
Итак, как я могу улучшить свой рабочий процесс, чтобы избавиться от этого шага копирования / вставки вручную? Я открыт для предложений здесь.
источник
Submodules
особенность git?Ответы:
Я очень часто использую следующий подход, который довольно независим от фреймворка.
/path/to/my/module
В вашем проекте определите локальный репозиторий для вашей локальной копии модуля. Это сделано для того, чтобы ваш проект мог извлекать не выдвинутые изменения из вашей LFS.
Затем вы можете составить заявку вашей конкретной ветви разработки (так долго, скажем, ваши проекты
minimum-stability
позволяют).Вы допускаете в
/path/to/my/module
,composer update namespace/module
в проекте, увидеть его установку и тестирование.Я считаю, что этот подход хорошо работает для модулей M1, использующих https://github.com/Cotya/magento-composer-installer , поскольку установка по символическим ссылкам может иногда вызывать боль и сбивать вас с толку при добавлении новых каталогов или путей, которые ранее не были символическими ссылками по модману.
Ссылки, которые могут заинтересовать
Отладка
Используйте,
composer require namespace/module dev-branch-name-here -vvv
чтобы увидеть ветви, которые вы можете использовать локально.Дважды проверьте, что
minimum-stability
было установленоdev
в проекте, в который вы устанавливаете модуль.Your requirements could not be resolved to an installable set
Нашел, прочитав комментарий Патрика Швисова здесь .
Короче говоря, вы можете обновить ваш,
composer.json
чтобы заставить его к определенной версии во время разработки, сделать его следующим образом:источник
path
репозитории типов для модулей проекта, которые я не буду использовать повторно, а затем git или packagist для модулей, которые я буду использовать повторно.Там твоя проблема. Если вы не можете изменить эту настройку для развертываний своего магазина, рассмотрите возможность работы с общими расширениями в отдельном экземпляре, где вы используете modman с символическими ссылками.
Я использую composer с установщиком AOE composer, чтобы клонировать репозитории расширений непосредственно в,
.modman
но установка модулей из Git с modman тоже работает, я полагаю. В любом случае вы можете работать непосредственно в модуле Git репозитория.источник
Поэтому моя идея для вас - начать работать с композитором даже для Magento1. Если у вас был свой собственный packagist , с которым не так сложно управлять сейчас, когда есть aws и google cloud, или вы можете использовать общедоступный packagist. У вас будет «легкий» доступ к новым версиям в ваших магазинах Magento1.
Это означает, что когда выйдет более новая версия, вы сможете,
composer update
и это автоматизирует процесс копирования для вас.Посмотрите https://github.com/Cotya/magento-composer-installer для Magento1 через композитор.
При таком подходе вы также можете напрямую работать с репозиторием git в папке vendor, если он настроен на копирование в,
.git
и, таким образом, вы можете перенести измененные обратно в свои репозитории без отдельной проверки. Обратите внимание, что вы должны быть осторожны и убедиться, что знаете, в какой ветке вы находитесь, иначе вы можете удалить свой код (это можно сделать несколько раз).источник