Огляд дефолтної структури папок в модулі Magento 2
Щоб зрозуміти, як працює модуль, спочатку потрібно з’ясувати, як основні компоненти (наприклад, контролери, моделі, блоки) взаємодіють один з одним. А перед цим також важливо знати, як ці компоненти структуровані в платформі Magento 2. У цій статті ми приділимо увагу огляду дефолтної структури модуля (основних папок і деяких файлів), щоб краще розуміти організацію цієї нової платформи.
Папки та файли модуля в Magento 2 можуть бути розміщені в 2-х каталогах:
app/code/<VendorName>/<ModuleName>/ vendor/<vendor-name>/<module-name>/
<VendorName>
— це, в основному, назва компанії, яка розробила модуль. Також це може бути і, наприклад, нікнейм програміста, який створив даний модуль. У перекладі з англійської “vendor” означає “постачальник”, що має явно ідентифікувати творця модуля. Якщо ви розробляєте модуль, використовуйте для цього унікальне значення.
Якщо модуль розробляється вами або вашою компанією, його файли розміщуються в папці app/code
.
Якщо ви встановлюєте модуль через Composer, його файли розміщуються в папці vendor
. Також тут розміщуються модулі ядра платформи Magento 2. Знайти ви можете їх за постачальником, тобто, в папці vendor/magento
.
Орієнтовна структура папок і файлів модуля
Графічно типова структура файлу для модуля Magento 2 може виглядати наступним чином:
Короткий опис призначення файлів і каталогів в модулі Magento 2
├── Api // PHP класи для REST API; ├── Block // PHP класи, що відповідають за View по MVC. Методи, які використовуються у .phtml шаблонах; ├── Controller // ці файли несуть відповідальність за з'єднання модулів із зовнішнім світом, наприклад, при зміні URL-адреси; ├── Cron // PHP класи, що обслуговують методи, які пов'язані із задачами Cron (завдання за розкладом); ├── Helper // містить файли, які відповідають за виконання загальних (допоміжних) завдань для об'єктів та змінних; ├── Model // PHP класи, що відповідають за Module по MVC; ├── Observer // PHP класи обсерверів (слухачів подій); ├── Plugin // PHP класи перехоплювачів (до, після, та навколо); ├── Setup // містить файли, необхідні для внесення змін у базу даних, тобто створення таблиць, полів або інших записів, необхідних для виконання роботи модуля; ├── UI // PHP класи, що відповідають за роботу з UI-компонентами; ├── etc // папка містить конфігураційні файли модуля; │ ├── adminhtml // конфігураційні файли, які зачіпають лише адмінпанель сайту; │ │ ├── di.xml // налаштування плагінів, віртуальних типів, переписування моделей; │ │ ├── menu.xml // відповідає за побудову меню в адмінпанелі; │ │ ├── routers.xml //налаштування маршрутів; │ │ ├── system.xml // побудова сторінки налаштувань в розділі Stores > Configuration; │ │ └── events.xml //налаштування обсерверів (слухачів подій); │ │ │ ├── frontend // конфігураційні файли, що відносяться до фронт-енду сайту; │ │ ├── di.xml │ │ ├── events.xml │ │ ├── routers.xml │ │ └── events.xml │ │ │ ├── acl.xml // налаштування розмежування прав у адмінпанелі; │ ├── config.xml // містить дефолтні значення для полів налаштувань у розділі Stores > Configuration; │ ├── crontab.xml // файл для налаштування задач Cron (завдань за розкладом); │ ├── di.xml │ ├── webapi.xml // тут відбувається налаштування REST API; │ └── widget.xml // файл з налаштуваннями для віджетів; │ ├── i18n // папка з CSV-файлами, що відповідають за локалізацію (переклади); │ ├── en_US.csv │ └── fr_FR.csv │ ├── view // тут містяться файли, що надають вигляду інтернет-магазину: макети (layout), .phtml шаблони, js файли, стилі css, простий html, картинки та шрифти; │ ├── adminhtml // медіа-файли, що надають вигляду бекенду (адмінпанелі); │ ├── frontend // ресурси, що надають вигляду фронт-енду; │ │ └── layout // xml-файли макету; │ │ └── templates // phtml-файли шаблону; │ │ └── web // статичні файли; │ │ └── css │ │ └── images │ │ └── js │ │ │ └── base // дефолтні ресурси, що надають вигляду і фронт-енду, і бекенду; │ ├── LICENSE.txt // файл, що містить умови ліцензії, за якою надається поточний модуль; ├── README.md // технічний опис всього того, що вміє модуль (функціональності); ├── composer.json // за допомогою цього файлу модуль встановлюється через Composer; └── registration.php // файл, за допомогою якого модуль реєструється у платформі Magento 2;
Розуміння структури модуля в Magento 2 дозволяє аналізувати логіку і функціональність розширення, а також трохи полегшує пошук і усунення помилок і конфліктів, що можуть виникати.
Останні пости
Найкрасивіші та найбільш вражаючі мости з усього світу (ТОП-10)
Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі
Соломон
Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі
Річард Бах
Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі
Стівен Кінг
Життя — це безперервний досвід, і навіть найгірші моменти займають своє місце у пазлі нашого… Читати далі
невідомий автор
Люди, які люблять самотність, дорого заплатили за дружбу з кимось... (невідомий автор) Читати далі