Пришло время пролить свет на разработку CMS. Должен заметить, что предыдущие посты о разработке Cookie-CMS включали в себя исходные коды, на которые мне сейчас смешно смотреть, сейчас того кода нету и используются более гибкие системы собственного производства.
Структура файлов и папок
Я очень долго ломал голову над структурой проекта будущей CMS. Изучив приличное количество существующих CMS, я не нашёл ничего подходящего. Поэтому, действуя наугад, искал всевозможные варианты методом тыка. В конце концов я определился с окончательной(возможно и нет) структурой файлов и папок.
Cookie-CMS
--- index.php
--- .htaccess
--- kernel (здесь находятся всё, что необходимо для базового функционирования)
--- events.php (система событий, на которых основана связь всех модулей)
--- functions.php (некоторые базовые функции)
--- modules.php (управляет модулями)
--- modules
--- example (пример обычного модуля)
--- config.ini (конфигурационный файл модуля, если нет, то будет искаться файл index.php и имя темы примет имя папки)
--- example.php (php код модуля, произвольное название, настраивается в config.ini)
--- template (html/css код модуля)
--- example.html
--- style.css
--- template (модуль шаблонов, будет идти в стандартной комплектации)
--- config.ini
--- template.php
--- templates (шаблоны)
--- default
--- images
--- index.html
--- modules (шаблон может заменять html/css код модуля своим)
--- example
--- example.html
--- style.css
--- style.css
Были мысли по поводу переноса некоторых папок в корень проекта, например templates/ удобнее было-бы видеть в корне, но если будет удобный интерфейс в админке и будет инсталятор шаблонов, то в этом не будет необходимости.
По поводу самой CMS
Как видно по структуре, в теле самой CMS(kernel/) будет находится незначительное количество скриптов. Это связано с тем, что весь функционал будет находиться в модулях. Функции по работе с базами данных, конфигурационные файлы, шаблоны, функции перехода по страницам и т.д., будут в виде модулей. Это и будет отличать Cookie-CMS от другой массы схожих разработок. Именно такую организацию работы я считаю лучшей, ведь абсолютно безграничная расширяемость позволит создавать совершенно любые проекты на его основе, от статичных сайтов-визиток, до высоко нагруженных форумов и порталов.
По поводу исходников
Исходники, конечно, будут в открытом доступе под лицензией GNU GPL(v2 или v3, ещё не решил). Пока их не будет, т.к. готово очень мало и всё может меняться очень глобально(уже при разработке структура файлов менялась 3-4 раза). Также не решил что использовать для хранения исходных кодов — Git или SVN. Склоняюсь к Git, но точно ещё ни в чём не уверен.
В общем, разработка потихоньку продвигается и я очень надеюсь, что из этого выйдет что-то хорошее.