Структура каталогов
Последнее обновление Aug 17th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$213 per month—let's make that $500!
Learn moreКорень установки MODX 3 разбит на несколько каталогов, у каждого своя роль. В 3.x каталог core/ должен оставаться по пути /core/ в корне проекта (его нельзя переименовать или перенести). Каталоги manager/ и connectors/ по-прежнему можно переименовать при расширенной установке. См. также Изменения каталога core в 3.0.
Типичная структура верхнего уровня после установки:
-
index.php: фронт-контроллер веб-контекста -
ht.access: шаблон перезаписи Apache (переименуйте/скопируйте в.htaccessдля дружественных URL) -
composer.json: описание PHP-зависимостей (Composer ставит их вcore/vendor/) -
connectors/: точки входа AJAX / коннекторов -
core/: код приложения, конфиг, кеш, пакеты, библиотеки vendor -
manager/: интерфейс Менеджера (бэкенд) -
setup/: установщик (удалите после установки или обновления) -
_build/: в основном в Git-клонах, сборка транспортного пакета ядра -
assets/: по умолчанию не поставляется, обычно используется для медиа и фронтенд-файлов Extras
connectors/¶
Коннекторы: HTTP-точки входа для AJAX-запросов Менеджера (и других). Сами базу данных не меняют. Они загружают MODX, очищают запрос и передают его процессору.
В 3.x большая часть трафика Менеджера идёт через connectors/index.php с параметром action (например Resource/Create). Это разрешается в класс под core/src/Revolution/Processors/.
Важные файлы¶
-
connectors/index.php: основной bootstrap коннектора. Пользовательские коннекторы обычно подключают этот файл (или повторяют его bootstrap), затем вызывают
$modx->request->handleRequest(). - connectors/config.core.php: создаётся установщиком, указывает путь к ядру и ключ конфигурации.
- connectors/system/: несколько отдельных системных коннекторов всё ещё живут отдельными скриптами.
core/¶
Ядро содержит почти всё, что заставляет MODX работать, кроме ресурсов UI Менеджера и setup. Зависимости управляются Composer и лежат в core/vendor/. Основной код MODX: в core/src/.
core/vendor/¶
Создаётся командой composer install (и входит в традиционные дистрибутивы). Содержит сторонние библиотеки: xPDO, Smarty, Flysystem, Guzzle, PHPMailer и др. Автозагрузчик Composer: core/vendor/autoload.php. Не правьте это дерево вручную, меняйте зависимости через Composer.
core/src/¶
Корень PSR-4 для пространства имён MODX\ ("MODX\\": "core/src/" в composer.json). Код приложения 3.x в основном здесь.
core/src/Revolution/¶
Классы ядра с пространством имён (MODX\Revolution\...): сервис modX, объекты модели, сервисы, контроллеры Менеджера и связанные компоненты.
Заметные подкаталоги:
- Processors/: обработчики запросов через коннекторы (создание/обновление/удаление списков, браузер, безопасность и т. д.)
- Controllers/: классы контроллеров страниц Менеджера
- Services/: общие сервисы (HTTP-клиент и другие, зарегистрированные в контейнере MODX)
- Transport/: поддержка сборки и установки транспортных пакетов
- Sources/: драйверы источников медиа
-
Smarty/: интеграция Smarty в MODX (
modSmarty) - mysql/: MySQL-специфичные файлы карт и классов xPDO для объектов ядра
core/model/¶
В основном зарезервирован под XML-схему и тонкую заглушку обратной совместимости.
-
core/model/schema/: XML-схемы для генерации карт и классов при разработке (
modx.mysql.schema.xml, схемы transport/sources и связанные файлы). На каждый фронтенд-запрос не читаются. - core/model/modx/modx.class.php: устаревшая заглушка, подключающая автозагрузчик Composer для старых путей include.
Классы модели и процессоры в runtime лежат в core/src/Revolution/, а не в старом дереве классов core/model/modx/ из 2.x.
core/include/¶
- deprecated.php: вспомогательные функции совместимости для устаревших API эпохи 2.x, где ещё есть алиасы.
core/cache/¶
Сгенерированные файлы кеша: конфигурация, контексты, ресурсы, элементы, лексиконы, Smarty и др. Безопасно очищать (MODX пересоберёт по запросу). Логи: в core/cache/logs/ (главный файл: error.log). Записи пишите через $modx->log().
Кеш контекста (например web и mgr) хранит переопределённые настройки контекста и для web: закешированные ресурсы/элементы, например cache/web/resources/12.cache.php.
core/components/¶
Создаётся при установке Extras. Каждый пакет обычно получает core/components/<package>/ для PHP, который не должен быть доступен из веба (процессоры, код модели, закрытые ресурсы).
core/config/¶
Содержит config.inc.php (учётные данные БД, пути и связанные опции). Создаётся и обновляется установщиком. Держите файл закрытым и делайте резервные копии.
core/docs/¶
Changelog (changelog.txt), текст лицензии и version.inc.php.
core/error/¶
Шаблоны страниц ошибок для серьёзных сбоев, когда MODX не может нормально запуститься.
core/export/ и core/import/¶
Каталоги для инструментов экспорта/импорта HTML в Менеджере и сторонних Extras (export/: вывод, import/: файлы для импорта).
core/lexicon/¶
Файловые темы лексикона по коду культуры (например core/lexicon/en/). Темы: файлы вроде default.inc.php. Записи можно переопределить через управление лексиконами, тогда они хранятся в базе.
Загрузка темы в коде:
$modx->lexicon->load('lang:namespace:topic');
-
lang: необязательный ключ культуры (по умолчанию текущая, часто
en) -
namespace: обычно
coreдля встроенных строк или пространство имён Extra -
topic: имя файла темы без
.inc.php
core/packages/¶
Загруженные и собранные транспортные пакеты, включая core.transport.zip для setup. Управление пакетами читает и пишет сюда.
Важные файлы кеша¶
-
core/cache/config.cache.php: закешированные системные настройки. Очистка
core/cache/заставляет пересобрать их из базы. - core/cache/sitePublishing.idx.php: отслеживает время авто-публикации/снятия с публикации, это не кеш всего контента сайта.
manager/¶
Бэкенд Менеджера для редактирования ресурсов, элементов, пользователей и системных настроек.
manager/assets/¶
Фронтенд-ресурсы UI Менеджера:
- ext3/: библиотеки Ext JS 3 для Менеджера
- modext/: слой ModExt MODX и виджеты Менеджера поверх Ext JS
- lib/, fileapi/: вспомогательные JS-библиотеки
manager/controllers/¶
PHP-скрипты, которые загружают страницы Менеджера (под manager/controllers/default/ для темы по умолчанию). Они готовят данные и регистрируют компоненты Ext JS / ModExt, более тяжёлая логика: в классах под core/src/Revolution/Controllers/.
manager/templates/¶
Smarty-шаблоны страниц Менеджера (manager/templates/default/). Это HTML/Smarty, не бизнес-логика на PHP.
Важные файлы¶
- manager/index.php: фронт-контроллер Менеджера
- manager/config.core.php: создаётся установщиком, указывает на ядро
setup/¶
Установщик и инструмент обновления. Запускайте для новых установок и обновлений, затем удалите каталог setup/. Содержит свои контроллеры, шаблоны, языковые файлы и CLI-точку входа (cli-install.php). См. Установка и Установка из командной строки.
В целях безопасности после использования в setup создаётся каталог .locked. Установщик откажется запускаться, пока этот каталог на месте.
_build/¶
Присутствует при установке из Git (и похожих dev-раскладках). Используется для сборки core/packages/core.transport.zip командой php _build/transport.core.php после установки зависимостей Composer. На продакшене с традиционным пакетом не нужен. См. Установка из Git.
assets/¶
Минимальный checkout ядра по умолчанию не создаёт этот каталог, но традиционные установки и почти все сайты используют его для медиа, CSS и JavaScript.
assets/components/¶
Веб-доступные файлы Extras (JS, CSS, изображения), установленные через управление пакетами, обычно зеркалят core/components/<package>/.
См. также¶
- Требования к серверу
-
Усиление безопасности MODX (закрыть публичный доступ к
core/и связанным путям) - Обновление с 2.x до 3.0 (пространства имён, процессоры, фиксированный путь к ядру)
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$213 per month—let's make that $500!
Learn more










