Как использовать GPT при разработке под CMS
Попросил Чат-GPT проанализировать код и рассказать об архитектуре. К сожалению он даже не увидел ссылку в подвале, но после явного тыкания носом согласился что ссылка есть и мы начали анализ. Вот что вышло:
Человек:
Теперь ты ее знаешь. Можешь изучить исходный код?
GPT:
Я не могу напрямую скачать и изучить исходный код, но ты можешь загрузить его сам с официального сайта, а затем прислать мне файлы или интересующие тебя фрагменты кода. Тогда я смогу их проанализировать и помочь с разработкой модулей или пониманием архитектуры Coffee CMS. 🚀
Человек:
Вот ядро
... скопировал сюда код файла .cms/index.php
что ты можешь сказать об архитектуре?
GPT:
Архитектура Coffee CMS довольно минималистична и построена вокруг системы хуков, которые управляют потоком выполнения. Основные моменты:
-
Глобальный массив
$cms
- Используется для хранения конфигурации, маршрутов, хуков, статуса запроса и других данных.
-
Хуки как механизм обработки
- Определены 6 начальных хуков (
query
,template
,echo
,write
,admin
,api
,cron
). - Последовательность выполнения задаётся в
$cms["hooks"]
. - Модули могут добавлять свои функции в эти хуки, что делает CMS гибкой.
- Определены 6 начальных хуков (
-
Загрузка конфигурации и модулей
- Загружается
config.php
, если он есть. - Подключаются файлы с функциями (
*.fn.php
). - Затем загружаются файлы модулей (
mod/*.mod.php
). - Также могут загружаться модули, специфичные для шаблона.
- Загружается
-
Маршрутизация
- Все маршруты хранятся в
$cms["urls"]
. - Они сортируются, чтобы более длинные пути обрабатывались раньше коротких.
- Выполняется поиск соответствия `preg_match`, и если совпадение найдено, устанавливается нужный хук.
- Все маршруты хранятся в
-
Основной цикл выполнения
- Пока есть активный хук, вызывается
do_hook($cms["hook"])
, после чего хук заменяется следующим в цепочке.
- Пока есть активный хук, вызывается
-
Отладка и логирование
- При включённом
debug
записывает данные вdebug.log.php
. - Есть закомментированные строки для логирования производительности (
perf.log
).
- При включённом
Вывод
Coffee CMS следует классической модульной архитектуре с хуками и простым маршрутизатором. Это делает её лёгкой и расширяемой, но также накладывает ограничения, так как вся логика проходит через массив `$cms`, что может затруднить дебаггинг и внесение изменений.
Человеческий вывод
Вполне можно использовать GPT для анализа кода Coffee CMS и просить его подсказать как делать модули. Тем более что код модулей специально сделан в "детском стиле" чтобы быть понятным большему количеству кодеров.