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

 



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

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