Объяснение структуры каталогов
Последнее обновление Apr 20th, 2021 | История страницы | Улучшить эту страницу | Сообщить о проблеме
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
$301 per month—let's make that $500!
Learn moreКорневой каталог MODX разделен на несколько подкаталогов, каждый со своим набором обязанностей и задач. Некоторые из этих каталогов можно переименовывать и перемещать, а их расположение можно настраивать во время установки.
connectors/¶
Коннекторы - это, по сути, точки входа для запросов AJAX в MODX. Они не делают никаких манипуляций с базой данных самостоятельно: они просто загружают основной класс MODX, очищают любые данные запроса, а затем обрабатывают запрос, указывая на соответствующий файл процессора.
Например, когда мы создаем ресурс, мы запрашиваем connectors/resource/index.php?action=create
. index.php
файл будет включать в себя файл базового соединителя (connectors/index.php
), который создает экземпляр основного объекта MODX, обрабатывает любые пользовательские Контекст переключение и дезинфекция запроса GET
или POST
. Затем connectors/resource/index.php
«обработает» запрос и вызовет правильный файл процессора, который мы обсудим позже.
Известные файлы¶
-
connectors/index.php- Этот файл особенно полезен при создании ваших собственных коннекторов. Просто включите этот файл в ваши коннекторы, а затем обработайте запрос, используя
$modx->request->handleRequest()
;
core/¶
Ядро - это то, что делает MODX, MODX. Это база для всех библиотек Revolution. Большая часть всего, что вам нужно, за исключением файлов менеджера и установочных файлов, находится в этом каталоге.
core/cache/¶
Каталог кеша содержит все файлы кеша, сгенерированные MODX. Лексиконы, элементы, ресурсы, данные RSS и Smarty генерируются по требованию MODX, что означает, что они кэшируются только после первого доступа.
core/cache/logs/¶
Регистрация всех файлов в MODX производится здесь. Здесь вы найдете файл error.log
, который содержит дату, время, файл и ошибку, записанную MODX.
Чтобы записать запись в этот файл, вы можете использовать метод $modx->log()
.
core/cache/mgr/¶
Этот каталог содержит данные кэша для контекста mgr (Manager). Как и любой кэш контекста, он будет кешировать любые параметры контекста, которые были переопределены из их системных настроек по умолчанию.
core/cache/rss/¶
Кеш каждого RSS-канала в MODX.
core/cache/web/¶
В отличие от кеша в MODX Evolution, кеш MODX Revolution разделен на несколько частей. Каждый контекст (т.е. web
и mgr
) имеет файл context.cache.php
. Этот файл похож на файл config.cache.php
, за исключением того, что он кэширует только те настройки, которые были переопределены из их системных настроек по умолчанию. Любой контекст может переопределить настройку системы.
Кроме того, кэш веб-контекста будет содержать отдельные каталоги для ресурсов и элементов. Ресурс с идентификатором 12 будет найден в cache/web/resources/12.cache.php
. Этот новый механизм кэширования означает, что время загрузки уменьшится, а ограничение количества кэшируемых ресурсов исчезнет.
core/components/¶
Когда вы устанавливаете пакет, используя Менеджер пакетов, в core/components/
будет создан каталог для хранения любых файлов, необходимых для запуска установленного компонента. Как правило, все файлы, необходимые для запуска в диспетчере, такие как контроллеры, данные модели схемы, процессоры и файлы классов, должны храниться здесь, а также файлы, которые вам не нужны для доступа в Интернет.
core/config/¶
Этот каталог содержит файл конфигурации для MODX Revolution. Он устанавливает учетные данные базы данных и ряд MODX_констант для правильной работы вашего сайта.
core/docs/¶
Этот каталог содержит файл changelog.txt
, лицензию GPL и все учебные пособия, созданные для Revolution.
core/error/¶
Он содержит шаблоны по умолчанию для сообщений об ошибках в клиентской части Revolution. Вы можете настроить эти страницы здесь.
core/export/¶
После запуска функции экспорта в MODX Revolution экспортированные файлы HTML для вашего сайта будут находиться здесь.
core/import/¶
Чтобы запустить функцию импорта в MODX Revolution, вам нужно переместить HTML-файлы в этот каталог.
core/lexicon/¶
[Lexicons]
в Revolution отличаются от языковых файлов в Evolution по двум основным причинам.
Во-первых, в Revolution файлы лексиконов разделяются на отдельные каталоги в зависимости от их двузначного кода IANA (например, английские лексиконы хранятся в /core/lexicon/en/
). Внутри этих подкаталогов находятся несколько файлов в формате topic.inc.php
. "topic" - это просто один файл лексикона. Разделение лексиконов по темам означает, что загружаются только строки _required_language
, что экономит память и время загрузки.
Во-вторых, все лексиконы хранятся в базе данных MODX, а затем кешируются по требованию. Это позволяет управлять лексиконами непосредственно из менеджера в области «Управление лексиконами».
Чтобы загрузить лексикон, можно использовать такой формат:
$modx->lexicon->load( 'lang:namespace:topic' );
lang - 2-значный код IANA. Это необязательно, и по умолчанию 'en'.
- namespace - У каждого лексикона свое Пространство имен. Встроенное пространство имен для MODX - «ядро». Создатели пакетов также смогут создавать собственные пространства имен, а пользователи Manager также могут создавать свои собственные пространства имен.
- topic - Конкретная тема/файл, который вы хотите загрузить.
core/model/¶
Это модель. Что за модель, говорите? Ну, это M в MVC (модель-представление-контроллер), которая является парадигмой ОО, которая утверждает, что в приложении должно быть как минимум три части. Модель, которая содержит структуру базы данных и привязки к ней View, который является частью графического интерфейса приложения, который не содержит никакой логики - только представление; и контроллеры, которые соединяют модель с представлением.
Итак, MODX делает модель своего рода похожей. На самом деле мы делаем модель MVC/C, в которой мы добавляем в модель точку доступа Connector и процессоры. Мы объясним это, когда придем к ним. Что вам нужно знать, так это то, что модель содержит все классы PHP, которые запускают Revolution, в том числе процессоры, которые обрабатывают определенные функции, такие как сохранение сниппетов, удаление сниппетов и т.д.
core/model/modx/¶
«Подожди! Я думал, что мы уже в директории modx? Почему другой подкаталог modx?» Хороший вопрос. Ну, MODX Revolution использует xPDO для управления базой данных. xPDO использует идею «пакетов» для разных соединений с разными моделями. Итак, если бы я хотел создать свои пользовательские таблицы, я бы создал новый пакет xPDO и добавил его во время выполнения. Таким образом, я мог использовать созданные карты и классы, не изменяя ядро MODX. Это показано в Создание стороннего компонента руководстве.
Таким образом, можно сказать, что каталог core/model/modx
ссылается на пакет "modx". Пойдемте внутрь, и вы увидите массу занятий. Это классы, которые являются либо xPDOObjects
- которые являются PHP-классами, представляющими таблицы в БД (т.е. modsnippet.class.php
- это PHP-класс, который является объектом modx_site_snippets
), либо они являются функциональными классами, как modcachemanager.class.php
.
Подкаталоги в этой папке - не включая mysql или процессоры - являются подкатегориями классов, которые загружаются следующим образом: $modx->loadClass('transport.modPackageBuilder');
с "." будучи разделением каталогов.
core/model/modx/mysql/¶
Этот каталог содержит файлы классов и карт для каждого объекта xPDO. Карты - это просто массивы PHP, содержащие структуру таблицы базы данных, на которую они ссылаются.
Другие платформы баз данных, такие как pgsql, mssql и другие, также появятся здесь.
core/model/modx/processors/¶
Этот каталог содержит отдельные файлы процессора, используемые при манипулировании базой данных. К ним никогда не обращаются напрямую, а вместо этого получают доступ через соединители. Это позволяет заблокировать их для предотвращения несанкционированного доступа.
core/model/schema/¶
Схема - это XML-представление базы данных MODX. Это используется при создании новых карт и классов, но никогда не читается и не анализируется, когда MODX работает. По большей части вы можете игнорировать этот каталог, так как он в основном используется для разработки. В учебнике по Созданию стороннего компонента узнаете больше о схемах.
core/model/smarty/¶
Это содержит библиотеки Smarty. Это просто извлечение файлов Smarty, которые вы можете получить с http://smarty.php.net. Ничто в этой папке не настроено для MODX - это происходит в другом месте.
Smarty - это интеллектуальный объектно-ориентированный шаблонизатор, использующий динамические, модифицируемые заполнители. Большинство страниц, видимых в диспетчере и во время установки, представляют собой файлы шаблонов Smarty (.tpl), с которыми взаимодействует MODX.
Например, когда вы редактируете ресурс (часто документ) в Менеджере, вы просматриваете страницу, сгенерированную контроллером, в manager/controllers/resource/staticresource/update.php
После установки характеристик ресурса в массиве $resource
этот код отображает страницу:
$modx->smarty->assign('resource',$resource); return $modx->smarty->fetch('resource/staticresource/update.tpl');
Плейсхолдеры Smarty в update.tpl заполняются данными, хранящимися в массиве $resource
.
core/packages/¶
Здесь вы найдете любые транспортные пакеты, которые вы скачали через Менеджер пакетов раздел Revolution, такой как TinyMCE, Ditto и т.д. Базовый пакет также находится здесь. Это позволяет легко устанавливать и удалять, а также удаленно обновлять установленные пакеты.
Когда вы создаете пакет (например, после извлечения из Git), транспортный пакет будет храниться здесь.
core/xpdo/¶
MODX Revolution был разработан для использования OpenExpedio (xPDO), расширения для PDO. Он обеспечивает единый интерфейс для управления базами данных и позволяет MODX поддерживать различные платформы баз данных, кроме MySQL.
В этом каталоге содержатся все файлы классов, необходимые xPDO для выполнения всего: от кэширования запросов до построения транспортных пакетов и вывода данных в виде удобного объекта JSON.
Эти классы используются внутри MODX, и разработчикам никогда не придется иметь дело с ними напрямую.
Известные файлы¶
-
core/cache/config.cache.php - Это кеш-файл для всех Системных настроек в MODX. Их эквиваленты базы данных находятся в _system_settings таблица, и их эквиваленты xPDO являются объектами modSystemSetting.
- Tip - Если вы когда-либо были заблокированы компонентом CAPTCHA, вы можете отредактировать этот файл и установить use_captcha to '0' отключить капчу. Затем вы можете войти и отключить CAPTCHA в Системные настройки.
- core/cache/sitePublishing.idx.php - В MODX Evolution этот файл содержал данные кэша для всех документов, сниппетов и сниппетов. В Revolution это больше не так, и теперь этот файл отслеживает интервалы обновления кэша.
manager/¶
Менеджер - это бэкенд или область администрирования MODX для создания ресурсов, управления пользователями и выполнения общих задач по обслуживанию сайта.
manager/assets/¶
Этот каталог содержит ExtJS библиотеки, а также пользовательская реализация ModExt. ModExt расширяет оригинальную библиотеку ExtJS, чтобы сделать разработку более удобной для пользователей.
manager/controllers/¶
Контроллеры - это файлы PHP, которые генерируют страницы менеджера. Они просто извлекают данные и возвращают или выводят их в браузер для рендеринга и отображения. Всякий раз, когда вы загружаете страницу в Менеджере, вы фактически указываете MODX загрузить определенный Контроллер, который просто загружает шаблон Smarty и выводит любой необходимый JavaScript в браузер.
manager/templates/¶
Этот каталог содержит файлы шаблонов для каждой страницы менеджера. Они не содержат код PHP, а используются для организации HTML. Если вы ищете файл Smarty .tpl для конкретной страницы менеджера, проверьте каталог manager/templates/default/
.
Известные файлы¶
- manager/assets/ext2/ext-all.js - Это основной файл библиотеки Ext, который должен быть включен на всех страницах диспетчера (или любой странице, использующей Ext). Он сжат, чтобы сэкономить место, сократить время загрузки и ускорить загрузку страниц. Однако, если вы выполняете много работы с JavaScript, вы неизбежно столкнетесь с некоторыми загадочными ошибками из-за сжатия. Лучший способ справиться с этим - просто переименовать этот файл, а затем переименовать файл ext-all.js в ext-all-debug.js, чтобы использовать несжатую версию во время разработки. Просто обязательно переключите их потом!
setup/¶
Этот каталог содержит файлы, необходимые для запуска программы установки и выполнения Свежая установка или обновления.
_build/¶
Этот каталог присутствует только в версии MODX Revolution, загруженной с сервера Subversion (а также в дистрибутиве SDK). Он содержит упакованные файлы данных ядра MODX, необходимые для установки MODX в базу данных.
Известные файлы¶
-
_build/transport.core.php - Этот файл должен быть выполнен после загрузки MODX Revolution и до запуска программы установки. После завершения вы должны заменить «core» каталог внутри вашего каталога
core/packages/
, который будет содержать все необходимые Транспортные средства для установки MODX Revolution.
assets/¶
Этот каталог по умолчанию отсутствует в MODX Revolution, но, здесь обычно размещают изображения, CSS, JavaScript и другие медиафайлы.
assets/components/¶
Когда вы устанавливаете пакет, используя Менеджер пакетов, в каталоге assets/components/
будет создан каталог для хранения любых необходимых файлов компонентов, таких как JavaScript или изображения.
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
$301 per month—let's make that $500!
Learn more