EE_FrameWork — это PHP-фреймворк с явным front controller, MVC-ядром, встроенным административным контуром и расширением через custom/ без правок ядра.
Эта документация написана для разработчика, который:
- уверенно знает синтаксис PHP;
- умеет читать чужой код;
- не знает внутреннюю архитектуру EE_FrameWork;
- хочет быстро перейти от первого запроса к уверенной разработке на проекте.
Если вы открыли проект впервые, идите по порядку:
- Быстрый старт
- Установщик проекта
- Настройка веб-сервера
- Архитектура
- Маршрутизация
- Модели
- Контентная модель
- Views и Layouts
- Hooks и custom-слой
- ИИ-настройки
- Импорт структуры
- Auth и доступ
- Кэширование
- Cron-агенты и scheduler
- Резервное копирование
- Отладка
- Security и production hardening
- API Reference
- Content API v1
index.php— единая точка входа HTTP.- production web server должен исполнять PHP только через front controller.
inc/configuration.phpсоздаётся установщиком и хранит только настройки конкретного сайта.inc/configuration.sample.php— шаблон конфигурации для репозитория.inc/bootstrap.phpсобирает runtime ядра, вычисляет производные константы и подключаетcustom/.Routerопределяет контроллер, action и аргументы из URL.- контроллеры живут в
app/<module>/index.phpилиapp/<module>/<controller>.php. Viewи layout-слой отвечают за вывод, а не за бизнес-логику.- проектный код расширения должен идти в
custom/, а не вinc/hooks.phpи не вinc/startup.php. - auth-routing и contour-policy должны настраиваться через hooks в
custom/hooks.php, а не project-specific правками ядра. - свойства можно расширять для категорий, страниц и пользователей; пользовательские свойства назначаются через наборы свойств роли.
- ИИ-профили хранятся в админском разделе “ИИ настройки” и не должны содержать секреты в документации, репозитории или публичных примерах.
- ошибки маршрутизации и недоступные документы должны уходить в
error.phpв корне проекта. ENV_DEBUG=false, закрытые внутренние директории и allowlist sanitization публичного rich text обязательны для production.
/index.php HTTP entrypoint
/inc/ bootstrap, configuration sample, installer, core hooks
/classes/system/ ядро: Router, View, Users, CacheManager, Logger, Hook
/classes/helpers/ helper- и service-классы
/app/ контроллеры, views, js/css, models по модулям
/app/docs/ docs-модуль как обычный маршрут фреймворка
/custom/ upgrade-safe слой проекта
/custom/docs/ исходники пользовательской документации
/uploads/ пользовательские файлы и данные
/layouts/ layout-шаблоны
/error.php штатная обработка ошибок 4xx/5xx
В проекте документация разделена на два рабочих слоя:
custom/docs/*.mdиcustom/docs/manifest.json— источник истины для контента;app/docs/...— обычный модуль фреймворка, который читает этот контент и отдаёт публичные URL вида/docs/quick-start.
Это разделение сделано специально:
- исходники документации не смешиваются с ядром;
- обновление платформы не должно затереть проектные тексты;
- docs-модуль остаётся обычным маршрутом фреймворка.
Если вы обновляете документацию, редактируйте custom/docs/, а не layout и не core hooks.
- Ядро и проектный слой разделяются жёстко.
- Контроллер управляет сценарием запроса, но не тащит в себя SQL.
- Модель отвечает за данные и возвращает единый результат операции.
- Мутации из модели наружу должны возвращать
OperationResult. - Хуки расширяют поведение, но не заменяют архитектуру.
- Кэш — это слой ускорения, а не источник истины.
- Логи, CLI-диагностика и явные health-check сценарии используются для диагностики, а не для повседневного UX.
Идите в API Reference, когда:
- вы уже поняли общий поток запроса;
- вам нужен конкретный метод
View,Hook,Users,CacheManagerилиLogger; - вы хотите быстро вспомнить сигнатуру без чтения исходников.