Pull to refresh

Реляционный подход

Reading time1 min
Views1.3K
Оговорюсь, свою CMS я не пишу, я лишь озвучу те идеи, которые хотелось бы видеть в CMS.

Модель документа, отложенный рендеринг



Модули CMS должны формировать не HTML-код, а обьектную модель документа. Это позволяет отложить получение данных для рендеринга на самый последний момент, сгруппировав повторяющиеся или сходные запросы к данным.

Кроме того, объектная модуль документа позволяет правильно работать с несколькими выходными форматами данных (HTML, RSS, WML и т.д.).

Множества, цепочки, ленивое выполнение


Итак, хотелось бы видеть в CMS реляционный подход к данным.

То есть, в любой момент времени ядро работает не с одной статьей, не с одним комментарием, не с одной ссылкой, а с множеством (пусть даже из 0-1 элементов).

Дополнительно к этому желательна реализация ленивого выполнения (аналогично LINQ, DBIx::Class).

Функционально желательно реализовать это аналогично реляционной логике jQuery (цепочки вызовов, операции над множествами).

Простой API шаблонизации


Если реализация CMS предстоит на PHP, то шаблонизатор по умолчанию должен делать только три вещи, — формировать глобальное окружение через extract, включать шаблон через include, и потом чистить глобальное окружение.

А вот уже шаблон может, например, при желании переадресовать свою работу более специализированному шаблонизатору (Blitz, Smarty, ZendView etc.).

Результат


В первую очередь получится CMS, эффективно работающая с базой данных.

Большая часть CMS работает с экземплярами обьектов, что означает множество операций выборки данных на один http-запрос.
Tags:
Hubs:
Total votes 12: ↑8 and ↓4+4
Comments81

Articles