Подскажите по структуре каталогов самописной CMF

insky

Новичок
Подскажите по структуре каталогов самописной CMF

Добрый вечер!

Не так давно решил допилить свои отдельные куски кода в нечто вроде простенькой CMF для дальнейшего использования в проектах.

Использованы технологии: Apache / Php 4 / MySql 4 / Smarty / TinyMCE / ModRewrite

Принцип работы:
  • 1. Все запросы перенаправляются на index.php
    2. В зависимости от запрашиваемого адреса проводится сопоставление с таблицей модулей
    3. Поиск модуля в подкаталоге insky/modules/ %name% / index.php - исполняется в качестве Model и Controller
    4. В папке /insky/templates/ - происходит поиск шаблона дизайна сайта smarty tpl
    5. В шаблон дизайна сайта подключается insky/modules/ %name% / index.tpl - в качестве controller
    6. exit

Также есть папка с статическими html страницами, которые не изменяются /sites/content/ это в качестве замены хранению статики в БД. Я написал простейший installer, позволяющий развернуть CMS на локальном хосте, запускается автоматически в билде v002.

Особенно интересно было бы услышать критику по структуре каталогов, и базовым группам функций таким как class.sql class.string, class.users, чтобы до того как начинать серъезное развитие CMS понять жизнеспособность архитектуры.



Insky CMS состоит из двух каталогов:
  • /insky/ - непосредственно CMS система с модулями и шаблонами
    /sites/ - файлы относящиеся только к текущему сайту

Каталог insky состоит из следующих подкаталогов:
  • /class/ - Базовые классы (точнее группы функций в одном файле)
    /ext/ - Внешние расширения и модули / сторонние разработчики /
    /getter/ - Внешние расширения и модули
    /img/ - Папка для хранения общих изображения
    /modules/ - Модули сайта
    /templates/ - Шаблоны сайта
    /tiny_mce/ - Редактор tiny_mce

Каталог sites состоит из следующих подкаталогов:
  • /.temp/ - логи, флаги, временные файлы
    /content/ - содержимое статических HTML страниц сайта
    /options/ - sitemap,robots,favicon и другие вспогательные файлы
    /upload/ - пользовательский контент


Заранее благодарю за любые замечания! Буду рад если, кто нибудь захочет присоединиться к разработке.
 

itprog

Cruftsman
мне понравилось что в class/class.* лежат обычные функции..
 

insky

Новичок
согласен, функции в директории class - странно
MySql 4 и PHP 4 старо, но зато у всех хостеров есть.

Может есть что-то по сути проекта?
 

AmdY

Пью пиво
Команда форума
по существу, так не заморачивайся, всё равно кроме тебя этой старушкой никто пользоваться не будет.
смешно, что у тебя есть папочка для тини, а для js и css вовсе ничего не предусмотрено.
но 4-ка это жесть
 

insky

Новичок
Спасибо за идеи. Понял следующие вещи:
1) Нужно сначала сформулировать систему именования классов, функций и переменных
Естественно причесал код в соответсвии с системой именования: http://code.google.com/p/insky/wiki/InskyNamingSystem

2) Нужно пытаться описывать свою систему в комплексе, чтобы понимать как она работает,
и где и что можно изменить

3) Выложил демо версию сайта на основе Insky CMS: http://demo.insky.ru/
Логин: [email protected] + Пароль: demo

4) Поменял систему обработки ошибок, теперь есть 3 состояния
Production -> при этом ничего из ошибок в браузер не выводится
Localhost -> при этом выводятся критические ошибки
Max.Debug -> при этом выводяться все Notice, панель дебаггинга smarty и.т.д.
---
Все это переключается одной кнопкой в панели управления.

5) Последнюю версию Insky CMS можно скачать http://code.google.com/p/insky/downloads/list

PS: На этой самописной CMS, реализованы сайты http://students.tomsk.ru и http://vseznaut.ru
 
Сверху