Для створення мінімального модуля Magento 2 необхідно лише два файли: module.xml та registration.php.
1. Спочатку створіть папку модуля:
app/code/<VendorName>/<ModuleName>/
та папку, у якій міститимуться конфігураційні файли модуля:
app/code/<VendorName>/<ModuleName>/etc/
Якщо папка app/code відсутня у вашій Magento 2 інсталяції - будь ласка створіть її.
2. Файл module.xml з наступним вмістом помістіть у папку app/code/<VendorName>/<ModuleName>/etc/
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="VendorName_ModuleName" setup_version="2.0.0">
<sequence>
<module name="Magento_Cms"/>
<module name="Magento_Catalog"/>
</sequence>
</module>
</config>
sequence не є обов'язковим елементом і призначений для означення модулів, від яких залежний ваш модуль. Якщо залежності невідомі, їх можна вказати пізніше.
setup_version -вказує на поточну версію модуля.
3. Створіть файл registration.php і помістіть його в папку app/code/<VendorName>/<ModuleName>/
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'VendorName_ModuleName',
__DIR__
);
У прикладах ми створюватимемо модуль Magefan_Faq для поширених запитань (FAQ - Frequently Asked Question(s)).
Отримана структура модуля виглядатиме так:
├── app │ └── code │ └── Magefan // назва розробника - VendorName
│ └── Faq // назва модуля - ModuleName
│ ├── etc
│ │ └──module.xml
│ │
│ └── registration.php
│
На GitHub можна переглянути файли модуля Magefan_Faq.
Після створення цих 2-х файлів зареєструйте модуль в системі. Відкрийте CLI (термінал, командну стрічку), після цього перейдіть у кореневу папку Magento2 і виконайте наступну команду:
php bin/magento setup:upgrade
Вона перевіряє наявність нових та оновлених компонентів системи (модулів, тем, мовних пакетів), встановлює/оновлює їх.
Перевірити чи встановлений та включений модуль можна у файлі
app/etc/config.php
у ньому повинна бути присутня стрічка
'VendorName_ModuleName' => 1
Ми створили найпростіший модуль для Magento 2. Він є окремою одиницею, хоч поки що не має жодного функціоналу.
Читайте більше як створити власний контролер та вивести "Hello World".