Пришло время пролить свет на разработку 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, но точно ещё ни в чём не уверен.
В общем, разработка потихоньку продвигается и я очень надеюсь, что из этого выйдет что-то хорошее.