Структура проекта
Как выглядит сайт на хостинге после установки. Полезно перед тем, как написать собственный модуль, поправить тему или просто понять, что куда залить.
Корень сайта #
После установки в корне домена будет такая структура:
app/ # ядро (Core, Database, Http, Security, View, Modules) modules/ # установленные модули (Chat, Banner, Calandary…) templates/ # темы оформления + шаблоны админки (admin/) public/ # точка входа (index.php) и публичная статика/uploads storage/ # кеш, логи, временные файлы lang/ # локализация (ru/, en/ и другие)
Никакого vendor/, node_modules/ и прочих внешних зависимостей нет — всё ядро работает на чистом PHP. Это значит, что обновление одной командой невозможно (и не нужно): кладёте свежую версию через Менеджер модулей или мастер обновления — и всё.
Что внутри app/ #
Core/ # Kernel, I18n, CmsVersion, GlobalSearch Database/ # DB.php (mysqli-обёртка), Mailer.php Http/ # Request, Response, Router Security/ # Auth, CSRF, Password, Totp View/ # движок шаблонов (плоский PHP + препроцессор) Modules/ # системные модули: Admin, Users, Api, Logger, Stats… helpers.php # e(), __(), module_can(), module_require() config/ # db.php (создаётся инсталлятором, в репо не лежит)
Все классы — в namespace App\, автозагружаются простым spl_autoload_register в public/index.php.
app/ перезаписывается. Если нужна кастомизация — пишите свой модуль в modules/, переопределяйте шаблоны в активной теме.Каталог modules/ #
Каждый модуль — это подкаталог в modules/. Имена в PascalCase, namespace — App\Modules\<Name>. Например, после установки модуля «Баннеры» появится:
module.json Banner.php BannerRouter.php Controllers/ Services/ FlagsPanel/ views/ lang/ migration.sql uninstall.sql
Подробнее — в разделе «Анатомия модуля».
Storage и кеш #
| Путь | Что лежит |
|---|---|
storage/cache/views/ | Готовый HTML страниц — кеш View-движка |
storage/cache/views_compiled/ | Скомпилированные шаблоны после препроцессора |
public/uploads/ | Загруженные через Media Library файлы |
storage/logs/ | Журналы (доступны через раздел «Логи» в админке) |
Все эти каталоги должны быть на запись для пользователя веб-сервера. Чистка кеша — кнопка в Настройки → Очистить кеш.