Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 18.04.2024)
456960
осіб
347
літаків
325
гелікоптерів
7196
танків
13835
ББМ
11637
артилерія
760
ППО
1046
РСЗВ
15618
машин
26
кораблі і катери
Огляд дефолтної структури папок в модулі Magento 2
Опубліковано

Огляд дефолтної структури папок в модулі 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 дозволяє аналізувати логіку і функціональність розширення, а також трохи полегшує пошук і усунення помилок і конфліктів, що можуть виникати.

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *