Итак, движок-цмс будем называть Web Engine, пока в голову не придет что-то по оригинальнее.
Главные цели которые будем ставить при проектировании движка:
- скорость и простота разработки (при его помощи)
- минимальный но легко расширяемый функционал
- скорость работы
Из этого всего следует, что будем использовать ООП и схему MVC.
Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.
MVC схема нам поможет достичь первую и вторую цель, а именно: продуманная структура позволит легко изменять дизайн, вносить изменения в функционал, легко разбираться в коде новым разработчикам.
Будет использовано объектно-ориентированное программирование с описанной ниже структурой, которая может, и скорее всего будет меняться во время разработки.
Также, будем использовать mod_rewrite модуль Apache, для получения красивых url адресов. Он будет включен в файле .htaccess следующим образом:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
В index.php, на который будут направляться все нужные нам запросы, будет создан экземпляр некого класса Engine внутри которого будут статические методы, которые будут возвращать синглтон вспомогательных классов (Config, Router, Users..).

Класс UniversalStructureClass (или, что то похожее) будет уметь работать с некими структурами описанными в конфигурации системы. Он получает имя структуры, ее схему и позволяет работать с данными этой структуры (get, set, выборки и другие операции). Предполагается, что некий рефлектор с помощью Relations будет, при необходимости, подгружать или модифицировать дополнительные данные для текущей страницы с помощью этого универсального класса.
После тестирования всего этого добра на скорость, скорее всего добавим возможность кеширования: Memcached и файловый.
Tags: development, framework, mvc, oop, php, web engine






