Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 22.04.2024)
460260
солдат
348
самолетов
325
вертолетов
7236
танков
13904
ББМ
11736
артиллерия
768
ПВО
1046
РСЗО
15812
машин
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 позволяет анализировать логику и функциональность расширения, а также немного облегчает поиск и устранение возникающих ошибок и конфликтов.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *