Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Знакомство с Magento

Magento — платформа для интернет-магазинов, написанная на PHP. Она рассчитана на большие каталоги: тысячи товаров, несколько сайтов и языков, сложные цены, склады и скидки. Всё это уже есть в ядре, а разработчик дополняет магазин своими модулями.

Open Source и Adobe Commerce

НазваниеЧто это
Magento Open SourceБесплатная версия с открытым кодом
Adobe CommerceПлатная версия: те же основы плюс дополнительные возможности для крупного бизнеса

Модули для обеих версий пишут одинаково, поэтому всё сказанное в курсе относится к обеим.

Версия

Курс рассчитан на Magento 2.4 (выпуски 2.4.7 и 2.4.8). Код из уроков использует возможности PHP 8, например объявление свойств прямо в конструкторе.

Что понадобится

ПрограммаЗачем
PHP 8.2 или новееНа нём работает платформа; точные версии зависят от выпуска
Composer 2Скачивает Magento и сторонние пакеты
MySQL 8 или MariaDBБаза данных
OpenSearch 2Поиск по каталогу; без него магазин не установится
Nginx или ApacheВеб-сервер

Точный список версий для каждого выпуска есть в разделе System requirements официальной документации. Проще всего поднять всё это в Docker.

Чем Magento отличается от других систем

Новичка обычно удивляют три вещи:

  • Много настроек в XML. Адреса, страницы, таблицы, права — всё описывается файлами XML внутри модуля.
  • Объекты не создают словом new. Класс перечисляет нужное в конструкторе, а Magento передаёт это сам — так называемое внедрение зависимостей.
  • Часть классов Magento генерирует автоматически и складывает в папку generated.

Взамен вы получаете главное свойство платформы: почти любое поведение ядра можно изменить из своего модуля, не трогая чужие файлы.

Что будет построено в курсе

Через весь курс проходит один пример — модуль Acme_Hello в папке app/code/Acme/Hello. Сначала он покажет страницу приветствия, а затем научится хранить отзывы о товарах: получит свою таблицу, страницу в панели управления, настройки, API и команду для консоли.

app/code/Acme/Hello/
├── registration.php
└── etc/
    └── module.xml

Так модуль будет выглядеть после урока «Первый модуль». В каждом следующем уроке к дереву добавляются новые файлы.

Частая ошибка

Исправлять файлы ядра в папке vendor/magento нельзя: правки пропадут при первом же обновлении, а найти причину странного поведения потом будет очень трудно. Любое изменение делают из своего модуля или темы — этому и посвящён курс.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.