Объяснение структуры каталогов

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

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

Для наглядности можете скачать дистрибутив с CMS MODX traditional и распаковать его, увидите следующую структуру.

каталоги modx

Часть этих каталогов можно переименовывать и перемещать, и изменять их расположение во время установки (MODX advansed), директория assets создается во время установки. Разберем все основные каталоги.

connectors/

В каталоге «connectors» содержатся файлы-коннекторы, отвечающие за обработку AJAX-запросов и взаимодействие с другими приложениями и сервисами. Здесь можно настроить соединение с внешними API или добавить свои собственные скрипты для работы с данными.

Коннекторы не производят никаких манипуляций с базой данных самостоятельно: они просто загружают основной класс MODX, очищают любые данные запроса, а затем обрабатывают запрос, указывая на соответствующий файл процессора.

  • connectors/index.php— особо полезный файл, при создании ваших собственных коннекторов. Просто включите этот файл в ваши коннекторы, а затем обработайте запрос, используя $modx->request->handleRequest();

core/

Каталог «core» содержит основные файлы и код MODX Revolution. Здесь находится ядро системы, отвечающее за обработку запросов, управление базой данных и работу с расширениями. Внутри «core» вы также найдете подкаталоги, такие как «config» для конфигурации системы и «model» для моделей базы данных.

Большая часть всего, что вам нужно, за исключением файлов менеджера и установочных файлов, находится в этом каталоге.

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/

Еще одна директива с кэшем, которая разделен на несколько частей. Каждый контекст (т.е. 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/

Здесь лежат языковый файлы (лексиконы), которые разделяются на отдельные каталоги в зависимости от их двузначного кода IANA (например, английские лексиконы хранятся в /core/lexicon/en/). Внутри этих подкаталогов находятся несколько файлов в формате topic.inc.php. «topic» — это просто один файл лексикона. Разделение лексиконов по темам означает, что загружаются только строки _required_language, что экономит память и время загрузки.

Все лексиконы хранятся в базе данных MODX, а затем кешируются по требованию. Это позволяет управлять лексиконами непосредственно из админки в области «Управление лексиконами».

Чтобы загрузить лексикон, можно использовать такой формат:

$modx->lexicon->load( 'lang:namespace:topic' );

lang — 2-значный код IANA. Это необязательно, и по умолчанию ‘en’.

  1. namespace — У каждого лексикона свое Пространство имен. Встроенное пространство имен для MODX — «ядро». Создатели пакетов также смогут создавать собственные пространства имен, а пользователи Manager также могут создавать свои собственные пространства имен.
  2. topic — Конкретная тема/файл, который вы хотите загрузить.

core/model/

Это модель: M в MVC (модель-представление-контроллер), которая является парадигмой ОО, которая утверждает, что в приложении должно быть как минимум три части. Модель, которая содержит структуру базы данных и привязки к ней View, который является частью графического интерфейса приложения, который не содержит никакой логики — только представление; и контроллеры, которые соединяют модель с представлением.

Итак, MODX делает модель своего рода похожей. На самом деле мы делаем модель MVC/C, в которой мы добавляем в модель точку доступа Connector и процессоры. Это будет объяснено позже, когда придем к ним. Вам сейчас нужно знать то, что модель содержит все классы PHP, которые запускают Revolution, в том числе процессоры, которые обрабатывают определенные функции, такие как сохранение сниппетов, удаление сниппетов и т.д.

core/model/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 (.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, такой как Ace, TinyMCE, PdoTools и т.д. Базовый пакет также находится здесь. Это позволяет легко устанавливать и удалять, а также удаленно обновлять установленные пакеты.

Когда вы создаете пакет (например, после извлечения из 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 — этот файл отслеживает интервалы обновления кэша.

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/

Этот каталог содержит файлы, необходимые для запуска установшика движка: установка MODX или его обновление.

_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 или изображения.

Знакомство с этой структурой позволит разработчикам быстрее вникнуть в тонкости программирования под MODX (создания пакетов и различных нестандартных решений) и обеспечить более эффективное развитие и поддержку проекта на MODX Revolution.

Смотрите также: Глоссарий MODX

Оцените статью
( Пока оценок нет )
MODX 3
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.