mirror of
https://github.com/avecms/AVE.cms.git
synced 2026-08-01 08:45:44 +00:00
Ядро и жизненный цикл запроса
Как запрос проходит через движок: от index.php до ответа. Здесь — базовые
кирпичи, на которых стоят и публичный сайт, и панель управления. Её каталог по
умолчанию называется /adminx, но может быть переименован.
Жизненный цикл (упрощённо)
index.php / adminx/index.php
│
▼
system/bootstrap.php → App::init() // автозагрузчик, БД, сессия, настройки, Twig, хуки
│
▼
Router::match() // найти маршрут по пути и методу
│
▼
handler (Controller::method / Closure) // выполнить обработчик, получить строку/JSON
│
▼
Response // отдать HTML/JSON + статус
В админке точка входа adminx/index.php дополнительно поднимает модули
(ModuleManager) и маршрутизацию через Dispatcher.
Карта раздела
| Страница | О чём |
|---|---|
| Инициализация (bootstrap) | Что поднимает App::init(): автозагрузка, БД, сессия, настройки, Twig, хуки. |
| Маршрутизация (Router) | get/post/put/delete, параметры {id}, группы, _method. |
| Контроллеры | Базовый App\Common\Controller: render / json / success / error / csrfGuard. |
| Авторизация (Auth) | Пользователь админки и посетитель сайта: check / user / id / attempt. |
| Сессии и CSRF | Session: хранение, токен CSRF, проверка форм и AJAX. |
| Права (Permission) | Проверка разрешений, роли, регистрация прав модулями. |
Два контекста
Движок обслуживает два независимых контекста в одной кодовой базе:
| Публичный сайт | Админка /adminx |
|
|---|---|---|
| Вход | index.php |
adminx/index.php |
| Пользователь | Auth::publicUser() (посетитель) |
Auth::user() / systemUser() (админ) |
| Права | — | Permission::check() |
| Модули | публичные модули | модули панели (ModuleManager) |
Сессия и CSRF-механика — общие (одна DB-сессия и cookie), что сохраняет вход при переходах между сайтом и панелью.
Расширения регистрируют namespaces и runtime-вклады декларативно через descriptor модуля; ручное изменение загрузчика для обычного модуля не требуется.