Архив рубрики 'Планирование'

Этап 0. Конфигурация системы.

Планирование, Создание cms Оставь комментарий »

После рассмотрения общей схемы функционирования CMS, приступаем к её реализации. Однако для этого необходимо сделать один предварительный шаг.

Этап 0. Конфигурация системы.

В нынешней версии CMS конфигурация системы задавалась в php-массивах. С точки зрения быстродействия – это оптимальный вариант реализации конфигурации системы, но редактировать такую конфигурацию не очень удобно. Кроме того в новой версии системы файлы конфигурации будут разнесены по каталогам соответствующих модулей, что ещё больше затруднит их редактирование, если они останутся в виде php-файлов.

Выход я вижу в использовании Zend_Config_Ini. Этот модуль позволит хранить конфигурацию системы в ini-файлах. Однако, для повышения быстродействии скриптов, не будем вызывать этот модуль при каждом старте системы. Сделаем скрипт, который будет компилировать все ini-файлы в один php-файл конфигурации, аналогичный файлу конфигурации в нынешней версии CMS.

Для реализации такой схемы конфигурации потребуется два модуля

  1. Компилятор ini-файлов в php-файл.
  2. Редактор ini-файлов (что-то вроде реестра в Windows) – такой редактор потребуется для некоторых модулей сайта, настройки которых нужно будет менять в процессе функционирования сайта.

Первый модуль довольно тривиален и будет реализован в первую очередь. Второй модуль более сложен, но для создания рабочего прототипа системы он не потребуется, поэтому его реализацию можно отоложить на потом.

Сосредоточимся на компиляторе ini-файлов в php-файл. Вот задачи этого модуля:

  1. Обойти все подкаталоги application, в котором хранятся все модули системы, и составить список ini-файлов в соответствии с их размещением в каталогах. Названия каталогов будут использоваться для доступа к этим переменным.
  2. Подготовить текстовую переменную, которая затем будет записана в файл /application/config.php. В этом файле будет класс Cfg, предоставляющий доступ только чтения ко всем переменным конфигурации. Класс будет реализован по паттерну Singleton.
  3. Считать каждый ini-файл в Zend_Config_Ini и распарсить его в php-файл.

Таким образом наши данные будут храниться в подготовленном php-классе, который будет быстро считываться во время выполнения основных скриптов.

Общая схема функционирования системы

Планирование, Создание cms Оставь комментарий »
  1. На входе скрипт имеет URL и $_REQUEST
  2. Аутентификатор
  3. Роутер
  4. Авторизатор
  5. МОДУЛЬ СТРАНИЦЫ
  6. Шаблонизатор
  7. Виджеты

Аутентификатор
Определяет пользователя, открывающего страницу.

Роутер
Определяет положение страницы относительно корня сайта и определяет какой модуль необходимо вызвать, чтобы её отобразить.

Авторизатор
Проверяет достаточно ли прав у пользователя для отображения этой страницы.

МОДУЛЬ СТРАНИЦЫ
Модуль, определяемый Роутером, для получения основного контента страницы.

Шаблонизатор
Заполняет предложенный шаблон контентом, который сгенерировал Модуль страницы. Определяет состав виджетов на странице и вызывает модули Виджетов, получая от них информацию, необходимую для вывода на странице. После получения информации от Виджетов, отображает сгенерированную страницу.

Виджеты
Активные иконки, меню сайта, баннер, топ новостей, опрос и т.п. – всё это виджеты, которые существуют по своим законам и программируются отдельно.

Три основные идеи и преимущества новой CMS

Планирование, Создание cms Оставь комментарий »
  1. Система разрабатывается на Zend Framework и следует всем его законам
    Преимущество: понятность системы большому количеству разработчиков благодаря чётко документированному процессу написания кода и взаимодействия отдельных частей системы; не требуется освоение новых правил специально для этой системы.
  2. Система состоит исключительно из модулей, каждый из которых можно легко заменить.
    Преимущество: высокая приспособляемость под конкретный проект при минимальных усилиях
  3. Каждый модуль пишется однократно и в дальнейшем в нём только устраняются ошибки, но не добавляется новой функциональности. Вся новая функциональность реализуется в других модулях (которые могут основываться на уже существующих)
    Преимущество: образуется большое количество стабильных модулей, которые можно спокойно использовать для своего проекта, не опасаясь, что в во второй версии он будет полностью несовместим с предыдущей версией.

Обновление в документации

Планирование Оставь комментарий »

Продумал и внёс в документацию основные разделы. По мере чтения литературы буду заполнять соответствующие разделы. Сейчас в первую очередь будет наполняться раздел «Правила кодирования».

Параллельно продумываю тексты в раздел «О системе». Но в данный момент они, конечно, менее важны, чем правила кодирования.

Начинаем составлять документацию к системе

Планирование Оставь комментарий »

Установил WIKI, в которой будет составляться вся документация к системе. Начиная от планирования и заканчивания инструкциям по кодированию и необходимым инструментарием для программиста.

Пока обозначены основные вехи развития системы, в дальнейшем будем углублятся в подробности по каждому пункту.