| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Подскажите по организации каталогов самописной CMF |
| Автор: insky 5.9.2008, 23:09 |
| Добрый вечер! Не так давно решил допилить свои отдельные куски кода в нечто вроде простенькой CMS для дальнейшего использования в проектах. Использованы технологии: 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/ - пользовательский контент Загрузить текущую версию 002 можно с Google Code http://code.google.com/p/insky/downloads/list Cкачать исходные коды из SVN http://code.google.com/p/insky/source/checkout Документация, которая написана на данный момент http://code.google.com/p/insky/w/list Заранее благодарю за любые замечания! Буду рад если, кто нибудь захочет присоединиться к разработке. |
| Автор: HackMan 6.9.2008, 12:53 |
| Извиняюсь, времени ноль, прочитал через строчку, по диагонали. Пока одно небольшое замечание - всё что не должно отображаться на сайте (особенно временные файлы, логи, инфа о сессиях и т.д.) лучше хранить за пределами public_html |
| Автор: insky 9.9.2008, 17:49 |
| Понял следующие вещи: 1) Нужно сначала сформулировать систему именования классов, функций и переменных Естественно причесал код в соответсвии с системой именования: http://code.google.com/p/insky/wiki/InskyNamingSystem 2) Нужно пытаться описывать свою систему в комплексе, чтобы понимать как она работает, и где и что можно изменить 3) Выложил демо версию сайта на основе Insky CMS: http://demo.insky.ru/ Логин: demo@demo.ru + Пароль: 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 |