Для того, щоб створити Magento 2 розширення, необхідно виконати наступні дії:
- Налаштувати Magento 2 Open Source локально
- Створити директорію назви розробника або компанії
- Створити директорію розширення
- Додати 2 конфігураційні файли в розширення
- Включити розширення в системі
- Зареєструвати розширення в системі
Давайте детально розберемо.
Налаштувати Magento 2 Open Source локально
Перш за все, необхідно встановити Magento 2 Open Source локально. Я вже описав увесь процес встановлення Magento 2 Open Source за допомогою Docker. Після того, як встановили Magento 2 Open Source, повертаємось назад до цього допису.
Створити директорію назви розробника або компанії
Magento 2 розширення, або Magento 2 модуль, може знаходитись у двох локаціях. Якщо розширення встановлюється за допомогою Composer менеджера пакетів, то розширення буде знаходитись в директорії vendor
.
Наприклад, розширення developerandcode/catalog
буде розташований у vendor/developerandcode/catalog
.
Друга локація для розміщення Magento 2 розширення це директорія app/code
. Але тут є один момент. Директорія розширення використовується як namespace частина PHP класів та інтерфейсів, і тому важливо, щоб назва директорій розширення була вірною.
Тому, те саме розширення developerandcode/catalog
, має бути створена як app/code/DeveloperAndCode/Catalog
.
Додати 2 конфігураційні файли в розширення
Давайте тут розберемось. Magento 2 розширенню необхідно не 1, а цілий 2 файли для того, щоб зареєструватися в Magento 2 системі.
Перший файл називається registration.php
. Файл має знаходитись в корні модуля app/code/DeveloperAndCode/Catalog/
.
<?php declare(strict_types=1);
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'DeveloperAndCode_Catalog',
__DIR__
);
Файл registration.php
будь-якого Magento 2 розширення надає інформацію для Magento 2 системи. А саме, за допомогою методу register()
класу ComponentRegistrar
, ми встановлюємо тип компонента як “модуль”, використовуючи одну з констант класу ComponentRegistrar
під назвою MODULE
.
Також, ми вказуємо псевдо назву компоненту DeveloperAndCode_Catalog
. Останнім аргументом методу register()
, ми вказуємо локацію файлів Magento 2 розширення за допомогою вбудованої PHP константи __DIR__
.
Другий файл, який необхідно створити для того, щоб зареєструвати Magento 2 розширення це module.xml
.
module.xml це конфігураційний файл, який надає інформацію про назву компоненту, знову ж таки псевдо назву. Таку саму, як і у файлі registration.php
. Також, але це не обов’язково, файл module.xml
визначає залежності на інші розширення, якщо такі залежності необхідні. Необхідність додавання залежностей визначається у випадку, якщо дане розширення розширює або використовує конфігурацію іншого розширення. При тому важливо зберегти правильність загрузки конфігурацій різних розширень.
Я знаю, звучить заплутано, але можна поки що упустити залежності, і сфокусуватись на основному. Що необхідно додати в файл module.xml
.
Файл module.xml
має розташовуватись в директорії 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="DeveloperAndCode_Catalog" />
</config>
Включити розширення в системі
Magento 2 надає Magento CLI, за допомогою якого, можна запускати команди. Для того, щоб встановити нове розширення DeveloperAndCode_Catalog
, необхідно запустити наступні команди з директорії Magento 2 проєкту.
Команда ввімкнення розширення DeveloperAndCode_Catalog
:
bin/magento module:enable DeveloperAndCode_Catalog
Зареєструвати розширення в системі
Команда реєстрації нового розширення в системі Magento 2:
bin/magento setup:upgrade
Висновки
Таким чим, у цьому дописі, ми познайомились з процесом створення Magento 2 розширення, вивчили локації Magento 2 розширення, та написали розширення та необхідні конфігураційні файли. Також, ми встановили та зареєстрували Magento 2 розширення в системі.
Наступний крок, це створення функціональності, за яке дане Magento 2 розширення буде відповідати.
Підписуйтеся на канал “Спільнота програмістів - Developer & Code” в телеграмі