Контент


Своя CMS: идеи. Ядро.

Решил написать свои мысли о процессе создания Kohana-based CMSки. Поскольку CMS будет состоять из набора модулей, необходим некий центральный модуль — ядро (core). Приведу свои мысли по поводу его функций, как минимум упорядочу в голове порядком перемешавшиеся идеи, а заодно выслушаю возможные комментарии/замечания по этому поводу.

Итак, основные задачи, решаемые ядром:

  • Управление вспомогательными модулями системы. Насколько я себе это представляю, нет смысла подключать разом все выбранные юзером модули. Необходимо загрузить ядро и предоставить ему манипулирование прочими модулями. Правда, для этого надо продумать схему взаимозависимостей всех модулей системы. Помимо собственно модулей, должны быть и плагины (скорее всего у каждого модуля будет свой набор плагинов, хотя можно придумать и что-то вроде каскадной системы а-ля Kohana).
  • Управление пользователями (авторизация/аутентификация и прочие штуки). На все модули планируется единая база пользователей, там ИМХО намного удобнее.
  • Ведение общей статистики (пользователи, страницы и т.д.).
  • Контроль целостности файлов проекта.

И ведь наверняка что-нибудь забыл! В общем, кроме работы с пользователями все остальные функции будут проходить незаметно для посетителей, ядро как-никак. Основная задача — координация взаимодействия загружаемых модулей. Теоретически в будущей CMS может быть неограниченное количество модулей, и загружать их все совершенно не хочется. Поэтому надо продумать загрузку отдельных модулей системы уже самим ядром (Kohana::config_set() Нам в руки). Конечно, при инсталляции системы и в дальнейшем использовании будет возможность активировать/деактивировать модули из списка — т.е. разрешать их подключение ядром. Также интересно, насколько реально реализовать «ленивую» загрузку модулей. Например, если вдруг в модуле «блог» понадобится показать последние 10 обсуждений модуля «форум», хотелось бы не загружать форум сразу, а только в случае вызова его библиотек. Есть над чем подумать, в общем :)

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

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Опубликовано в Пишем CMS.

Теги: , , .


Комментарии (5)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

  1. Александр пишет:

    Я сейчас в раздумьях, стоит ли писать «с нуля» свой велосипед. Присматриваюсь к уже имеющимся ЦМСкам на предмет соответствия моему идеалу :)

    Мне кажется, имеет смысл делать систему максимально модульной — то есть все кроме базовых вещей (безопасность, прием реквестов, доступ) должно быть реализовано отдельными модулями. Естественно, это требует четкой системы их взаимодействия (требует ли?). В общем, мыслям тесно :)

  2. BIakaVeron пишет:

    Я так и планирую. Больше всего напрягает, что не имея хотя бы одного более-менее реализованного модуля, проблематично грамотно построить систему управления этими модулями.
    А по поводу велосипедов — ИМХО это неизбежный путь, просто анализируя чужой код трудно осваивать технологии. А так, сделал велосипед, получил опыт и навыки, а дальше все по кругу — присматриваемся, оцениваем, выбираем готовое или опять пишем велосипед №x… :)

  3. Александр пишет:

    все упирается во время.. За велосипеды никто не платит, и это противоречие разрывает мне душу :)

  4. BIakaVeron пишет:

    C’est la vie :D

  5. wordwild пишет:

    давайте вместе напишем. я тоже хочу.



Можно включить подсветку кода: <code><pre lang="">...</pre></code>
Разрешены некоторые HTML теги

или используйте trackback.