A
Asvild
Прохожие
- Автор темы
- #1
Принципы построения CMS.
Каждый из нас рано или поздно сталкивается с препятствиями при построении своей CMS. Теми или иными способами они преодолеваются. Но хорошо когда выбран правильный подход к конкретному случаю, бывает же и так, что приходится идти по неверному пути. (Возможно, реализация с использование данного «неверного пути» будет функционировать и заслуживает места, но зачем тратить лишнее время и лишние нервы?)
Для предотвращения скитаний по этим «неправильным путям», на мой взгляд, будет целесообразно все «тонкие» места при построении CMS классифицировать в данной теме. На вскидку предлагаю следующее:
Классификация принципов:
- Архитектура сайта. ( = ядро сайта? ) Взаимодействие компонентов. С чего надо начинать.
- Организация вызова подключаемых модулей системы.
- Генерация путей к подключаемым файлам. - Отделение дизайна от логики. Плюсы и минусы каждого метода.
- Шаблонизатор.
- Компонентный подход. - Блокировка доступа к скриптам.
Надеюсь на постоянно пополнение данного раздела.
-------------------------------------------------
Приведу структуру организации системы, к которой я пока пришел.
Код:
admin/ - административный центр
templates/ - шаблоны административной части сайта
images/ - картинки административной части сайта
modules/ - модули административной части сайта
cache/ - каталог, в который будет записываться кэш и компилированные шаблоны
uploads/ - каталог для загрузки пользовательских файлов
files/ - файлы загруженные сайт
images/ - картинки загруженные сайт
system/ - ядро системы
mysql.class.php - класс для работы с базой
language/ - каталог языковых файлов
russian.lng - язык
modules/ - модули фронтальной части сайта
news/ - каталог с модулем
templates/ - шаблоны фронтальной части сайта
tpl/ - шаблон
Генерация путей к подключаемым файлам.
Пути… вот тут у меня слабое место. Я пока работаю с относительными путями. То есть просто подключаю «lib/config.php» или «../lib/config.php». В некоторых системах определяют абсолютный путь до корневой директории сайта и записывают его в конфиг, а потом уже просто подключают: $home_dir.«lib/config.php».
Также хотелось увидеть используемые Вами классы при работе с базами данных, файлами, картинками, и т.д..