Как создать простой модуль в Magento 2

Как создать простой модуль в Magento 2



В этом уроке мы создадим самый простой модуль в Magento 2. Это будет только каркас, который мы будем достраивать и развивать в дальнейших уроках.

 

Прежде чем мы начнем разработку простого модуля Magento 2, есть две вещи, о которых многие забывают:

 

  1. Отключить кеш Magento 2

Отключение кеша Magento 2 во время разработки поможет сэкономить время, потому что вам не нужно вручную очищать кеш каждый раз, когда вы вносите изменения в код.

Самый простой способ отключить кеш – перейти в Admin → System → Cache Management → выбрать все типы кеша и установить для них Disable.

Либо вы можете набрать в консоли следующую команду (как работать с консолью, вы можете посмотреть в этом уроке):

php bin/magento cache:disable

 

 

  1. Переведите 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.

 

 

  1. Создайте следующие папки:
app/code/Sebweo
app/code/Sebweo/Helloworld

 

Папка Sebweo – это пространство имен модулей (Vendor, т.е., производитель), а Helloworld – это название самого модуля.



Примечание. Если у вас нет папки code в папке app, создайте ее вручную.

 

Чтобы создать самый простой модуль в Magento 2, нужны только два файла: module.xml и registration.php. Рассмотрим это дальше.

 

 

  1. Файл определения модуля – 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.

 

 

 

  1. Файл регистрации модуля – 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.

 

 

  1. Очистка системы

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

 



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *