Як створити простий модуль в Magento 2
В цьому уроці ми створимо найпростіший модуль в Magento 2. Це буде тільки каркас, який ми будемо добудовувати і розвивати в наступних уроках.
Перш ніж ми почнемо розробку простого модуля Magento 2, є дві речі, про які багато хто забуває:
- Відключити кеш Magento 2
Відключення кешу Magento 2 під час розробки допоможе заощадити час, тому що вам не потрібно вручну очищати кеш кожен раз, коли ви вносите зміни в код.
Найпростіший спосіб відключити кеш – перейти в Admin → System → Cache Management → вибрати всі типи кеша і встановити для них Disable.
Або ви можете набрати в консолі наступну команду (як працювати з консоллю, ви можете подивитися в цьому уроці):
php bin/magento cache:disable
- Переведіть Magento 2 в режим розробника
Ви повинні перевести Magento 2 в режим розробника, що дозволить вам бачити всі помилки під час розробки.
Для цього відкрийте консоль та з кореня сайту виконайте наступну команду:
php bin/magento deploy:mode:set developer
Створення каркаса для модуля в Magento 2
Якщо ви раніше працювали з Magento версій 1.х, ви використовували середовище розробки – core
, community
і local
, які розміщувались в папці app/code
. В Magento 2 більше немає такого поняття. Модулі згруповані за простором імен (Vendor) і поміщені безпосередньо в папку app/code
.
Тому наш перший крок – створити папку модуля і необхідні файли, які потрібні для реєстрації модуля в платформі Magento 2.
- Створіть наступні папки:
app/code/Sebweo app/code/Sebweo/Helloworld
Папка Sebweo
– це простір імен модулів (Vendor, тобто, виробник), а Helloworld
– це назва самого модуля.
Примітка. Якщо у вас немає папки code
в папці app
, створіть її вручну.
Щоб створити найпростіший модуль в Magento 2, потрібні тільки два файли: module.xml
та registration.php
. Розглянемо це далі.
- Файл визначення модуля – module.xml
Тепер, коли у нас є папка з модулем, нам потрібно створити файл module.xml
в папці app/code/Sebweo/Helloworld/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="Vendor_ModuleName" setup_version="1.0.0"> <sequence> <module name="Magento_Catalog"/> </sequence> </module> </config>
Замініть Vendor на свій простір імен, в нашому прикладі – це Sebweo
. А ModuleName на назву модуля, в нашому прикладі – це Helloworld
.
Значення в ноді setup_version
вказує на поточну версію модуля. Ви можете використовувати будь-яке цифрове значення.
Значення в ноді sequence
не є обов’язковим елементом. Його використовують, коли ваш модуль залежить від інших модулів в системі. У нашому прикладі модуль залежить від модуля Magento_Catalog
.
- Файл реєстрації модуля – registration.php
Щоб зареєструвати модуль в системі, створіть файл registration.php
в папці app/code/Sebweo/Helloworld
з таким вмістом:
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendor_ModuleName', __DIR__ );
Замініть Vendor на свій простір імен, в нашому прикладі – це Sebweo
. А ModuleName на назву модуля, в нашому прикладі – це Helloworld
.
- Очищення системи
Відкрийте консоль та з кореня сайту Magento 2 запустіть наступну команду:
php bin/magento setup:upgrade
Якщо після цього ви відкриєте сайт в браузері і побачите, що злетіло стильове оформлення, тоді додатково виконайте в консолі і таку команду:
php bin/magento setup:static-content:deploy
Якщо ви хочете переконатися, що ваш новий модуль був успішно встановлений, ви можете відкрити файл app/etc/config.php
і перевірити, що в масиві є ключ «Sebweo_Helloworld
», а значення для нього має бути встановлено в 1
.
Також ви можете використати наступну команду з консолі:
php bin/magento module:status
Ця команда покаже вам список всіх модулів в системі.
От і все! Сьогодні ми створили найпростіший модуль для Magento 2. Він уже присутній в системі, але поки нічого корисного не робить. У наступних уроках ми будемо наповнювати його корисним функціоналом.
Останні пости
Найкрасивіші та найбільш вражаючі мости з усього світу (ТОП-10)
Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі
Соломон
Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі
Річард Бах
Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі
Стівен Кінг
Життя — це безперервний досвід, і навіть найгірші моменти займають своє місце у пазлі нашого… Читати далі
невідомий автор
Люди, які люблять самотність, дорого заплатили за дружбу з кимось... (невідомий автор) Читати далі