У меня возникают проблемы при решении всех вопросов, связанных с управлением конфигурацией программного обеспечения на CMS (в частности, Joomla!). Конечно, я пишу собственные шаблоны, но также и собственные модули и компоненты. Эти веб-сайты и приложения предназначены для клиентов, а не внутри компании.
Я хочу на самом деле настроить конфигурацию сайта, а не только код его шаблонов и компонентов, потому что я хочу, чтобы он был готов к развертыванию исправлений или передаче кому-либо как можно быстрее. Прямо сейчас это означает хранение полной Joomla! установить для каждого сайта в SVN, включая установленные версии компонентов и шаблонов, и сохранить фактический экспорт базы данных. Для компонентов я также сохраняю «упакованную» версию кода (см. Ниже). Я обычно не беспокоюсь за шаблоны, так как вы можете просто поместить их в Joomla! установить и все работает.
Проблема с этой настройкой, которую я сейчас обсуждаю, заключается в разработке пользовательских компонентов. В Joomla! (и большинство других CMS) расширений обычно развертываются с помощью веб-установщика - вы не можете (по крайней мере, на начальном этапе) просто удалить файлы в определенную папку, так как требуются изменения БД. Joomla! Система установки обеспечивает миграцию БД и файлов с помощью хуков установки и удаления, так что это довольно разумная система для развертывания.
Прямо сейчас я тоже:
1) работать непосредственно с установленным компонентом, добавляя и изменяя файлы, а затем вручную копируя их в упакованную версию компонента, или
2) работать над упакованным компонентом и использовать установщик для фактического просмотра результатов. Эта опция обычно занимает слишком много времени, но она имеет преимущество, заключающееся в том, что код остается «высвобождаемым», особенно в отношении миграции БД.
В любом случае изменения повторяются в обеих версиях файлов перед регистрацией, и дублирование мне кажется запахом.
Так, кто-нибудь еще делает это? Есть ли лучшие варианты?