Объяснение структуры каталогов 2 |
- Statistics
- Participants
- Translate into Russian
- Translation result
- 75% translated in draft. Almost done, let's finish it!
Корневой каталог MODx разбит на несколько подкаталогов, каждый со своими целями и задачами. Некоторые из этих каталогов могут быть переименованы и перемещены, и их размещение может быть настроено в процессе установки.
connectors/
Коннекторы (connector) в MODx являются точками входа для AJAX-запросов. Сами по себе они не выполняют никаких манипуляций в базе данных; они просто загружают главный класс MODx, приводят к безопасному виду данные запроса, а затем обрабатывают запрос, указывая на подходящий файл обработчика (processor).
К примеру, когда мы создаем ресурс, мы запрашиваем 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. Это - ядро для всех библиотек "Революции". Все, в чем Вы больше всего нуждаетесь, за исключением файлов менеджера и файлов установки, находится в этом каталоге.
core/cache/
Кэш-директория содержит все кэш-файлы, создаваемые MODx. Словари, элементы, ресурсы, rss, и smarty данных генерируются по требованию MODx, а это означает, что они кэшируются после того, как были вызваны в первый раз.
core/cache/logs/
Все файлы логирования в MODx создаются здесь. Вы найдете здесь error.log файл, который содержит дату, время, файл, и ошибки, которые были зарегистрированы в MODx.
Чтобы сделать лог-запись в этот файл, вы можете использовать $modx->log() метод.
core/cache/mgr/
Этот каталог содержит данные кэша для mgr (Менеджер) контекст. Как любой контекстный кэш, будут кэшироваться любые контекстные параметры настройки, которые были переопределены от их заданных по умолчанию Системных Параметров.
core/cache/rss/
Кэш RSS каналов в modx.
core/cache/web/
В отличие от кэша в MODx Evolution, кэш MODx Revolution разделен на несколько частей. У каждого контекста (то есть сеть и менеджер) есть context.cache.php файл. Этот файл похож на config.cache.php файл, за исключением того, что он только кэширует параметры настройки, которые были отменены от их значений заданных по умолчанию Системных Установок. Любой контекст может отменить системную установку.
Дополнительно, кэш контекста сети будет содержать отдельные каталоги для ресурсов и элементов. Ресурс с идентификатором 12 будет найден в cache/web/resources/12.cache.php. Этот новый механизм кэширования означает, что уменьшится время загрузки, и предел на число кэшируемых ресурсов исчезнет.
core/components/
Когда Вы установите пакет, используя Менеджер Пакетов, core/components/<component_name>/ будет создан каталог, чтобы считать любые файлы необходимые для запуска установленного компонента. Как правило, все файлы, необходимые для работы в Менеджере, такие как контроллеры, модели/схемы данных, процессоры и файлы классов, должны храниться здесь, а так же как файлы, к которым Вы не хотите дать доступ из сети.
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 (Тема) - просто один файл лексики. Разбиение словарей на темы означает, что только необходимые языковые строки будут загружены, сохраняя память и время загрузки.
Во-вторых, все словари хранятся в базе данных modx, а затем в кэш по требованию. Это позволяет управлять славарями непосредственно из Менеджера, внутри блока [Lexicon Management].
Чтобы загрузить словарь, можно использовать формат, такой как этот:
$modx->lexicon->load( 'lang:namespace:topic' );
1. lang - 2х-значный код IANA. Не является обязательным, и по умолчанию 'en'.
2. namespace - Каждый словарь имеет своё Пространство Имён. Встроенное пространство имен для MODx - "ядро". Создатели пакета также будут иметь возможность создать заказное пространство имен, и пользователи Менеджера могут также создать свои собственные пространства имен.
3. topic - Определенная тема/файл который Вы хотите загрузить.
core/model/
Это модель. Что такое модель, вы говорите? Хорошо, это M в MVC (модель-представление-контроллер), которая является парадигмой OO, утверждая, что должно быть по крайней мере три части приложения. Модель, в которой содержится структура базы данных и подключение к ней; Представление, которое является частью GUI приложения и не содержит никакой логики - только показ, а также контроллеры, которые связывают модель с представлением.
Так, MODx действительно моделирует вид - подобных. Мы фактически делаем модель MVC/C, в которую мы добавляем узел доступа Конектор и Процессоры к модели. Мы разъясним, то к чему мы с этим пришли. То, что Вы должны знать, - то, что модель содержит все классы PHP, которые выполняют Революцию, включая процессоры, которые обрабатывают определенные функции - такие как сохранение сниппетов, удаление чанков, и т.д.
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 работает. По большей части, Вы можете проигнорировать этот каталог, поскольку он главным образом используется для разработки. Обучающие программы созданные для 3-ье сторонних компонентов, учат схемам более углубленно.
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/
Здесь вы найдете любые транспортные пакеты, которые вы уже загрузили через раздел Управление пакетами Революции, такие, как TinyMCE, Ditto и т.д. Основной пакет также находится здесь. Это дает возможность легкой установки и удаления, а также удаленного обновления установленных пакетов.
При создании пакета (например, после проверки из svn), транспортный пакет будет храниться здесь.
core/xpdo/
MODx Революция была спроектирована для использования OpenExpedio (xPDO), расширение к PDO. Это обеспечивает однородный интерфейс для того, чтобы он управлял базами данных, и позволяет MODx, помимо MySQL, поддерживать различные платформы баз данных.
Этот каталог содержит все файлы классов необходимые xpdo для кэширования запросов, созданию транспортных пакетов и вывода данных в виде удобного JSON объекта.
Эти классы используются внутри MODx, и разработчики никогда не должны должны непосредственно с ними иметь дело.
Известные Файлы
* core/cache/config.cache.php - файл кэша для всех Системных Настроек MODx. Его содержание такое же как в таблице _system_settings, и их PDO эквивалентно modSystemSetting объектам.
o Tip - If you ever get locked out by the CAPTCHA component, you can edit this file and set use_captcha to '0' to disable CAPTCHA. Then you can log in and disable CAPTCHA in System Settings.
* core/cache/sitePublishing.idx.php - In MODx Evolution, this file contained the cache data for all documents, chunks, and snippets. In Revolution, this is no longer the case, and this file now keeps track of cache refresh intervals.
* core/cache/mgr/actions.cache.php - a map of all modAction objects.
manager/
The Manager is the MODx backend or administration area for creating resources, managing users, and performing overall site maintenance tasks.
manager/assets/
This directory contains the ExtJS libraries, as well as the custom ModExt implementation. ModExt extends the original ExtJS library, to make development more convenient for users.
manager/assets/controllers/
Controllers are the PHP files tied to modActions. They simply fetch data and return or output it to the browser for rendering and display. Whenever you load a page in the Manager, you are in effect telling MODx to load a particular Controller, which simply loads a Smarty template and outputs any necessary JavaScript to the browser.
manager/assets/templates/
This directory contains the template files for each manager page. They do not contain PHP code, but rather are used to organize HTML. If you are looking for the Smarty .tpl file for a particular manager page, check in the manager/templates/default/ directory.
Notable Files
* manager/assets/ext2/ext-all.js - This is the main Ext library file, which must be included on all Manager pages (or any page using Ext). It's compressed to save space, decrease download time, and speed up page loads. However, if you're doing a lot of JavaScript work, you're bound to run into some cryptic errors because of the compression. The best way to deal with this is to simply rename this file, and then rename the ext-all.js file to ext-all-debug.js to use the uncompressed version during development. Just be sure to switch them back afterwards!
setup/
This directory is the equivalent of the "install" directory in MODx Evolution. It contains the necessary files needed to run Setup and perform a Fresh Installation or an Upgrade.
_build/
This directory is only present in version of MODx Revolution downloaded from the subversion server (as well as the "SDK" distribution). It contains the packaged MODx core data files necessary to install MODx to a database.
Notable Files
* _build/transport.core.php - This file must be executed after downloading MODx Revolution, and prior to running Setup. After completion, you should notice a "core" directory inside your core/packages/ directory, which will contain all of the necessary [Vehicles] for installing MODx Revolution.
assets/
This directory is not present in MODx Revolution by default, but like in MODx Revolution, it is common to place images, CSS, JavaScript, and other media in here.
assets/components/
When you install a package using the Package Manager, an assets/components/<component_name>/ directory will be created to hold any necessary component files, such as JavaScript or images.
