Исходные данные.
Для разработки расширения Joomla, например компонента, надо иметь:
1.
«Установочный» каталог расширения. В этом каталоге хранятся файлы расширения в виде установочного пакета. Например:
/mycomp/ # корневой каталог расширения
/mycomp/admin/ … # каталог с файлами административной части
/mycomp/site/ … # каталог с файлами публичной части
/mycomp/com_mycomp.xml # описание расширения и инсталяционный скрипт
Из этого каталога собирается установочный пакет.
2.
Тестовый сервер с каталогом сайта для тестирования.
Важное замечание: на сайте каталоги и файлы расширения разбросаны совсем не так, как в установочном пакете.
3.
Редактор кода или среда разработки (IDE), с помощью которого код пишется.
4. Не обязательно, но фактически стандарт:
репозиторий git + удаленный репозиторий github
Набор не большой и вполне стандартный для разработки, но есть одна неприятная сложность : структура установочного пакета = структуре хранения файлов на github != структуре файлов на тестовом сервере.
Таким образом мне видятся два варианта работы:
1. Настроить
редактор на работу с файлами в «установочном» каталоге расширения.
Тогда после каждой правки, собираем пакет -> устанавливаем на тестовый сервер -> тестируем изменение.
Понятно, что git настроен на работу с каталогом расширения.
Плюсы:
+ установочный пакет всегда готов
Минусы:
- большие затраты на тестирование изменение
- установочный пакет не всегда работоспособен
2. Можно
настроить редактор на работу с файлами тестового (имеет смысл только локального)
сервера.
Тогда тестировать можно сразу после правки. Что бы собрать тестовый пакет надо скопировать все необходимые файлы из различных каталогов тестового сайта в каталог расширения.
Git может быть настроен на один из этих каталогов или сразу на два — контролировать и каталог расширения или/и файлы расширения в тестовом сайте.
Плюсы:
+ быстрое тестирование
+ установочный пакет всегда работоспособен
+ каталог установки версионируется без git
Минусы:
- если версионируется установочный каталог — IDE не дает подсказок о необходимости сделать коммит.
- если версионируется каталог тестового сервера, структура файлов в репозитории git не соответствует пакету установки.
Держать
два репозитория git – в каталогах разработки, на тестовом сервере и в каталогах установки можно, но это усложняет систему и увеличивает возможность что-нибудь забыть.
Я использую вариант с редактированием и версионированием файлов в каталогах сервера, но регулярно сталкиваюсь с различными неудобствами связанными с необходимостью вести несколько веток, которые в рамках одного сайта не всегда совместимы.
Возможно есть какие-то лучшие способы объединить разработку, тестирование и версионирование расширений.
Предлагаю желающим поделится опытом настройки рабочей среды разработки.