СКМ для CMS - PullRequest
       13

СКМ для CMS

2 голосов
/ 09 апреля 2009

У меня возникают проблемы при решении всех вопросов, связанных с управлением конфигурацией программного обеспечения на CMS (в частности, Joomla!). Конечно, я пишу собственные шаблоны, но также и собственные модули и компоненты. Эти веб-сайты и приложения предназначены для клиентов, а не внутри компании.

Я хочу на самом деле настроить конфигурацию сайта, а не только код его шаблонов и компонентов, потому что я хочу, чтобы он был готов к развертыванию исправлений или передаче кому-либо как можно быстрее. Прямо сейчас это означает хранение полной Joomla! установить для каждого сайта в SVN, включая установленные версии компонентов и шаблонов, и сохранить фактический экспорт базы данных. Для компонентов я также сохраняю «упакованную» версию кода (см. Ниже). Я обычно не беспокоюсь за шаблоны, так как вы можете просто поместить их в Joomla! установить и все работает.

Проблема с этой настройкой, которую я сейчас обсуждаю, заключается в разработке пользовательских компонентов. В Joomla! (и большинство других CMS) расширений обычно развертываются с помощью веб-установщика - вы не можете (по крайней мере, на начальном этапе) просто удалить файлы в определенную папку, так как требуются изменения БД. Joomla! Система установки обеспечивает миграцию БД и файлов с помощью хуков установки и удаления, так что это довольно разумная система для развертывания.

Прямо сейчас я тоже: 1) работать непосредственно с установленным компонентом, добавляя и изменяя файлы, а затем вручную копируя их в упакованную версию компонента, или 2) работать над упакованным компонентом и использовать установщик для фактического просмотра результатов. Эта опция обычно занимает слишком много времени, но она имеет преимущество, заключающееся в том, что код остается «высвобождаемым», особенно в отношении миграции БД.

В любом случае изменения повторяются в обеих версиях файлов перед регистрацией, и дублирование мне кажется запахом.

Так, кто-нибудь еще делает это? Есть ли лучшие варианты?

1 Ответ

2 голосов
/ 09 апреля 2009

"1 /" должен быть "своего рода" путь

Если у вас есть слово «упаковка», это означает, что вы используете не одну версию, а два «компонента» (набора файлов)

  • один компонент "разработки": довольно большой, со всеми необходимыми файлами
  • один «распределенный» компонент: довольно маленький, с несколькими сжатыми файлами.

Включает в себя:

  • автоматический способ создания и управления версиями этого компонента (путем сжатия и сохранения этих файлов)
  • автоматический способ скопировать этот компонент дистрибутива (представляющий сжатую версию вашей упакованной версии), распаковать его и rsynch-it с тестовой или рабочей платформой.

Таким образом, вы не просто «дублируете» изменения, но отслеживаете фактическую полную конфигурацию:

  • готов к развертыванию на другой платформе
  • или используется для повторного запуска текущего развернутого пакета.
...