Общие принципы (Архив)

Материал из Smart Core Wiki

(Перенаправлено с Общие принципы)
Перейти к: навигация, поиск

ВНИМАНИЕ! эта статья требует доработки! информация на ней может быть не актуальной.


Архитектура движка, вкратце, выглядит следующим образом: вся структура сайта имеет древовидный вид т.е. представляет из себя структуру виртуальных папок в которые добавляются требуемые функциональные модули, далее при запросе клиентом некого URI, движок начинает обход по заказанным папкам и подключает соответсвующие модули, собирается многомерный массив с данными, которые сгенерировали модули, затем запускается шаблонизатор, который по готовому массиву с данными собирает хтмл страничку.

Для обеспечения гибкости в проектировании и отображении используется такие понятия, как «контейнер» и «наследование». Наследование применяется для того, чтобы добавив модуль в какую либо папку, он срабатывал и в папках включенных в родительскую папку, например чтобы отображать одинаковую шапку на всем сайте, создаём в корневой папке текстовый модуль и наследуем его вглубь. Контейнеры (они же «Блоки») это логическое объединение модулей, используется по большей части в шаблонах для отображении данных в заданных местах страницы.

Концепция организации данных в Smart Core CMF схожа с концепцией организации структуры папок (директорий) и файлов в операционных системах. Например можно рассмотреть следующую структуру папок :

схема

Здесь видно иерархическую структуру папок системы (они помечены желтыми квадратиками), в этих папках могут находиться произвольные данные (по типу, как в операционных системах в папках хранятся разного рода «файлы»: текстовые, таблицы, картинки, аудио, видео, и т.д. а также другие «папки»), эти типы данных помечены как «ноды» бледно-зеленым цветом, а сами данные модулей помечены зеленым цветом.

Например в папке «О компании» может находиться несколько «нод» (в Smart Core CMF «ноды» по смыслу похожи на файлы в операционных системах) в одной «ноде» может содержаться просто текст с контакной информацией, в другой карта расположения, использующая технологию Google Maps API, в третьей форма обратной связи для быстрой отправки е-маил сообщения администрации сайта и т.д.

Некоторые «ноды» (или, как упоминалось выше, какбы «файлы») могут также иметь собственную организацию данных, как мы можем увидеть на примере папки «Каталог». Здесь нода, содержащая сам каталог, имеет собствунную структуру похожую на структуру папок всей системы, но в тоже время каталог является просто элементом встроенным в общую структуру папок системы. Так же каталоги могут иметь более тонкие возможности выбооки данных, например учитывая категорию товара, какие-то его характеристики, бренды, цены и т.д.

Таким образом следуя этой модели данных, система может собрать тот набор данных, которые запросит пользователь, например: Мой сайт / Новости / Новости компании / Вторая новость. на практике подобныя ссылка может иметь следующий вид http://mysite.org/news/company/2009/10/10/second_notice.html В следствии обработки этого URI будут собраны следующие данные:

После обработки запроса ЧПУ и сбора модели данных запускается шаблонизатор, который на основании этих данных генерирует (X)HTML страницу, кторая уже отображается браузером пользователя сайта.

На программном уровне алгоритм выглядит следующим образом:

Личные инструменты
Пространства имён
Варианты
Действия
Основные разделы
Ссылки
Навигация
Инструменты