У меня есть следующая структура каталогов в приложении CMS мы писали:Версия управляет системой управления контентом?
/application
/modules
/cms
/filemanager
/block
/pages
/sitemap
/youtube
/rss
/skin
/backend
/default
/css
/js
/images
/frontend
/default
/css
/js
/images
Приложения содержит код, специфичный для текущей реализации CMS, то есть код для этого конкретного СХ. Модули содержат многократно используемые фрагменты кода, которые мы совместно используем в проектах, таких как библиотеки для работы с YouTube или RSS-каналами. Мы включаем их в качестве подмодулей git, чтобы мы могли обновить модуль на любом веб-сайте и отбросить изменения во всех других проектах. Это позволяет легко применить изменения к нашему коду и распространить его. Мы хотели превратить CMS в модуль, чтобы получить ту же выгоду - мы можем запустить весь проект под контролем источника, а затем обновить cms по мере необходимости через git-подмодуль. Однако мы столкнулись с проблемой: Для работы cms требуется javascript/images/css, чтобы он работал правильно.
Вещи, которые мы думали о:
Мы могли бы создать 2 подмодулей, один для ЦМС-кожи и один для СЦИ, но это означает, что вы не можете «мерзавец тянуть» один вариант, не имея некоторое представление о том, какие версии скинов работают с версиями cms. то есть версия 1.2.2 CMS может иметь проблемы с 1.0.3 CMS-Skin
Мы могли бы добавить кожу к модулю СХ, но это имеет следующие проблемы:
- кожа должна быть доступна на документе root, код модуля не должен быть, и, если он есть, вероятно, он должен быть защищен с помощью .htaccess
- Это не похоже на то, чтобы связывать активы с кодом php
- Мы могли бы создать символическую связь между/skin/backend/to/modules/cms/skin, но вызывает ли это какие-либо проблемы с безопасностью, и хотим ли мы потребовать что-то вроде символической ссылки для приложение для работы?
- Мы могли бы создать крючок для git или скрипта оболочки, который копирует файлы из модулей/cms/skin в skin/backend при обновлении, но это означает, что мы теряем возможность редактировать основные файлы CMS в проекте, а затем нажимаем их назад
Как это обычно делается в больших масштабах CMS,? Как можно получить исходный код для cms под управлением версии, работать с приложением для клиента, а затем обновлять исходный код как выпуски и предоставляться поставщиком? Как делают такие приложения, как Magento или Drupal?
уверенный - я понимаю, что git repos отслеживает текущее состояние подмодулей через их ша-хэш, проблема в том, что помещение cms-skin внутри cms вызывает много других проблем, которые я объяснил выше – Mike
@Mike: да, но я не понял, каковы ограничения. Идея заключалась бы в том, чтобы вставить/вставить скин в соответствующем месте в пределах cms, b/вставить версию скина (т. Е. Специальную ветвь) с реорганизованным контентом для соответствия его новому местоположению (то есть внутри cms) – VonC
«Кожа должна быть доступный в корневом каталоге документа, код модуля не должен быть, и, если это возможно, он, вероятно, должен быть защищен с помощью .htaccess " – Mike