Чтобы понять, как работает модуль, сначала нужно выяснить, как основные компоненты (например, контроллеры, модели, блоки) взаимодействуют друг с другом. А перед этим также важно знать, как эти компоненты структурированы в платформе 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 может выглядеть следующим образом:
├── 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 позволяет анализировать логику и функциональность расширения, а также немного облегчает поиск и устранение возникающих ошибок и конфликтов.
Люди, между которыми есть любовь и взаимопонимание, скрепляют отношения и зарождают новый союз, а дату… Read More
Для качественного SEO (поисковой оптимизации, раскрутки сайта) одним из важных показателей является Авторитет домена (Domain… Read More
Выяснение того, как вывести свои деньги с PayPal, является одним из первых вопросов, которыми озадачивается… Read More
Юбка – мощный элемент женского гардероба, благодаря которому любой наряд будет выглядеть потрясающе стильно и… Read More
Поисковые системы (например, Google) проверяют технические характеристики вашего сайта, такие как скорость загрузки, удобство навигации,… Read More
Чтобы удлинить, завить и хорошо укрепить структуру ресниц, недостаточно использовать специальные многофункциональные инструменты. Еще понадобятся… Read More