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

 

Recent Posts

History Hijacking: Почему Google наказывает за «сломанную» кнопку Назад и как защитить сайт с помощью CSP

Каждый владелец сайта и SEO-специалист ведет ежедневную упорную борьбу за удержание пользователя на страницах вебресурса.…

4 часа ago

Интернет-магазин без лишнего функционала: как не переплатить за разработку на старте

Многие предприниматели сталкиваются с одной и той же проблемой. После утверждения бюджета разработка затягивается, появляются…

1 день ago

Как выбрать детские бутсы для футбольной секции и не ошибиться с типом подошвы

Футбольная секция быстро показывает, насколько обувь подходит ребенку. Если пара скользит, давит или плохо цепляется…

2 дня ago

Флагманский смартфон: почему стоит купить Samsung Galaxy S26 Ultra

Компания Samsung — один из лидеров на рынке электроники. Ее смартфоны выделяются надежностью, качественными дисплеями,…

2 дня ago

Глагол dar в испанском языке: значение, спряжение и особенности использования

Испанский язык привлекает миллионы людей своей мелодичностью, эмоциональностью и относительной простотой изучения. Одним из важнейших…

1 неделя ago

Идеальное рабочее место: собираем надежный сетап для стабильной работы и гейминга

Рабочее пространство давно перестало быть просто столом с ноутбуком. Сегодня это полноценная экосистема, где каждая…

1 неделя ago