1.3 Використання конфігурації XML і область видимості змінних


XML конфігурація Magento розділена на декілька файлів, залежно від призначення. Це допомагає уникнути одного дуже великого файлу конфігурації.

module.xml
acl.xml
config.xml
crontab.xml
di.xml
email_templates.xml
events.xml
indexer.xml
adminhtml/menu.xml
mview.xml
[area]/routes.xml
adminhtml/system.xml
view.xml
webapi.xml
widget.xml
Визначте, як використовувати файли конфігурації в Magento
Які конфігураційні файли відповідають різним функціям і можливостям?

📌 MAGENTO 1
XML конфігурація Magento 2 має зовсім інший вигляд, ніж у Magento 1. Оскільки в Magento 2 прийнято конвенцію PSR-4, багато шаблонів, що були розташовані в теці etc/config.xml в Magento 1, були видалені. Є кілька заздалегідь визначених шляхів (таких як /Setup), але практично все інше залишилось для вас, щоб ви могли організувати оптимальне компонування модуля.

Крім того, Magento 2 підтримує конфігурування, засноване на області видимості (areas). Це можна побачити в vendor/magento/magento-catalog/etc/ де є такі теки: adminhtml, frontend, webapi_rest, webapi_soap. Конфігурація в цих теках завантажується тільки в тому випадку, якщо в цій області ініціалізується Magento. Наприклад, під час перегляду панелі адміністратора конфігурація, знайдена в frontend, webapi_rest або webapi_soap, не завантажується.

Ми обговоримо найважливіші XML-файли, які можна знайти в теці /etc.

module.xml

Це єдиний обовʼязковий файл конфігурації. Він визначає поточну версію модуля і порядок завантаження модулю.
Наприклад: vendor/magento/module-catalog/ etc/config.xml

acl.xml

Цей файл визначає права доступу до захищених (protected) ресурсів.
Наприклад: vendor/magento/module-catalog/etc/acl.xml

config.xml

Цей файл завантажує конфігурацію за замовчуванням у Store→Configuration. Це так само те місце, де конфігураційні записи можуть бути позначені як зашифровані (encrypted) (пароль).
Наприклад: vendor/magento/module-fedex/etc/config.xml

crontab.xml

Цей файл визначає дії (actions), які мають бути запущені за розкладом.
Наприклад: vendor/magento/module-catalog/etc/crontab.xml

di.xml

Цей файл конфігурує впровадження залежностей (dependency injection) для вашого модуля. Це, можливо, найбільш часто використовуваний файл під час кастомізації Magento. Тут оголошуються плагіни, виконується заміна класів, конкретні класи вказуються для інтерфейсів, відбувається налаштування віртуальних типів, а також тут можуть бути оголошені або змінені аргументи конструктора.
Дуже важливо ознайомитися з можливостями цього файлу.
Наприклад: vendor/magento/module-catalog/etc/di.xml

email_templates.xml

Цей файл визначає email шаблони, які використовуються в Magento. Id шаблону це зчеплений (concatenated) шлях у стилі XML, до того місця в системі, де визначено конфігураційний шаблон.
Наприклад: vendor/magento/module-customer/etc/email_templates.xml

events.xml

Цей файл реєструє слухача подій (event listeners). Цей файл часто можна помістити в певну область видимості.
Наприклад: vendor/magento/module-catalog/etc/frontend/events.xml

indexer.xml

Цей файл налаштовує індексатори Magento.
Наприклад: vendor/magento/module-catalog/etc/indexer.xml

adminhtml/menu.xml

Цей файл налаштовує меню в admin частини Magento.
Наприклад: vendor/magento/module-customer/etc/adminhtml/menu.xml

mview.xml

Ініціює тип події (event), коли дані змінюються в стовпчику бази даних (матеріалізовані подання (materialized views)). Це найчастіше використовується для індексації.
Наприклад: vendor/magento/module-catalog/etc/mview.xml

[area]/routes.xml

Цей файл повідомляє Magento, що ця область (area) приймає веб-запити. Вузол маршруту (route node) налаштовує першу частину дескриптора макету (handle layout) (ідентифікатор маршруту (route ID)) та ім'я фронт частини (front name) (перший сегмент в URL-адресі після імені домену).

adminhtml/system.xml

Цей файл визначає вкладки конфігурації, розділи, групи та поля, знайдені в конфігурації магазину (Store Configuration).
Наприклад: vendor/magento/module-customer/etc/adminhtml/system.xml

view.xml

Цей файл аналогічний config.xml, але використовується для зазначення значень за замовчуванням для конфігурації дизайну.
Наприклад: vendor/magento/theme-frontend-luma/etc/view.xml

webapi.xml

Цей файл налаштовує доступ до API і маршрути (routes).
Наприклад: vendor/magento/module-catalog/etc/webapi.xml

widget.xml

Цей файл налаштовує віджети для використання в продуктах, сторінках CMS і блоках CMS.
Наприклад: vendor/magento/module-catalog/etc/widget.xml

Визначте, як використовувати файли конфігурації в Magento

XML конфігурація Magento завантажується в міру необхідності. Коли необхідний di.xml, Magento знаходить усі файли di.xml і об'єднує їх разом.

Використовувати файл конфігурації дуже просто: створіть цей файл у теці /etc/. Найкраще якщо файл буде обмежений конкретною областю видимості (area), наприклад frontend або adminhtml. Скопіюйте створений раніше файл з іншого модуля, щоб почати з шаблону, який точно працює.

Ви також можете створювати власні файли конфігурації. Для цього потрібно кілька дій:

Які конфігураційні файли відповідають різним функціям і можливостям?

Здебільшого використовуються файли, які детально описані вище. Деякі менш популярні файли:

Blog Comments powered by Disqus.