PearCMS Docs v2.4
Документация / Начало / Структура проекта

Структура проекта

Как выглядит сайт на хостинге после установки. Полезно перед тем, как написать собственный модуль, поправить тему или просто понять, что куда залить.

Актуально для v2.4 Обновлено 1 июля 2026

Корень сайта #

После установки в корне домена будет такая структура:

/ (корень домена)text
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/ #

app/text
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/ напрямуюПри обновлении ядра app/ перезаписывается. Если нужна кастомизация — пишите свой модуль в modules/, переопределяйте шаблоны в активной теме.

Каталог modules/ #

Каждый модуль — это подкаталог в modules/. Имена в PascalCase, namespace — App\Modules\<Name>. Например, после установки модуля «Баннеры» появится:

modules/Banner/text
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/Журналы (доступны через раздел «Логи» в админке)

Все эти каталоги должны быть на запись для пользователя веб-сервера. Чистка кеша — кнопка в Настройки → Очистить кеш.