Технологический стек Magento: что внутри платформы

Magento — основа интернет-магазинов для тысяч компаний по всему миру. Платформа открывает широкие возможности для создания и масштабирования eCommerce-проектов любой сложности.

Чтобы понять, почему Magento остаётся одной из самых популярных систем, стоит заглянуть «под капот» — в её технологический стек. Именно он обеспечивает гибкость, производительность и надёжность платформы.

Magento написана на PHP и использует элементы архитектурного шаблона MVC (Model-View-Controller). Её модульная структура позволяет гибко дорабатывать функциональность и интегрировать внешние решения.

В основе стека лежат проверенные технологии с открытым исходным кодом:

  • Веб-серверы: Apache, Nginx
  • Бэкенд: PHP, Composer
  • База данных: MySQL, PerconaDB
  • Фронтенд: jQuery, RequireJS, Knockout.js, HTML5, CSS3/Less, React
  • Поиск: Elasticsearch
  • HTTP-ускоритель: Varnish
  • Кэш-хранилище: Redis
  • Сообщения и очереди: RabbitMQ
  • API: REST, GraphQL

В следующих разделах разберём, как эти компоненты взаимодействуют между собой и за что каждый из них отвечает.

Мы Mygento, официальный партнёр Adobe, разрабатываем высоконагруженные решения для B2C, B2B и D2C-екома. Среди наших клиентов ASUS, L'Oréal, Nespresso, Unilever, Lindt, BAT, Детский мир, Midea и другие. За плечами более 300 реализованных проектов.

В блоге рассказываем, как решаем сложные задачи в eCommerce — с фокусом на технологичность и бизнес-логику.

Как Magento развивалась на PHP

История Magento началась в 2007 году — в эпоху, когда выбор PHP-фреймворков был крайне ограничен. На рынке доминировали CakePHP, CodeIgniter, Zend Framework и ранняя версия Symfony.

CakePHP и CodeIgniter подходили лишь для быстрой разработки простых приложений. Symfony 1 находился на ранней стадии развития и не обладал нужными для екома функциями.

Для корпоративных проектов тогда чаще всего выбирали Zend Framework — разработанный той же командой, что и PHP, он обеспечивал безопасность, производительность и гибкость. Именно его компоненты легли в основу Magento 1, хотя сама платформа не была построена на Zend полностью.

Когда в ноябре 2011 года стартовала разработка Magento 2, Zend Framework 1 всё ещё был лидером рынка. Zend Framework 2 вышел только в 2012 году, поэтому Magento 2 унаследовала и компоненты Zend 1, и элементы Zend 2, а также частично использовала решения Laminas и Symfony.

Со временем команда унифицировала лучшие паттерны из этих фреймворков, создав Magento Framework — собственный набор инструментов, адаптированный под задачи eCommerce. Такой подход сделал платформу более гибкой и готовой к требованиям интернет-магазинов с самыми разными бизнес-моделями.

Magento Framework — фундамент платформы

Magento Framework — это не Zend Framework, хотя в истории развития платформы оба играли важную роль.

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

Фреймворк управляет базовыми операциями — работой с HTTP-протоколами, отображением контента, обменом данными с базой и файловой системой и взаимодействием расширений между собой.

Именно поэтому Adobe не рекомендует напрямую изменять файлы Magento Framework. Вместо этого разработчикам стоит использовать библиотеки ядра и наследовать классы и интерфейсы, определённые во фреймворке. Такой подход гарантирует совместимость расширений с будущими версиями платформы и упрощает поддержку проекта.

Расширяемость как ключевая особенность Magento

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

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

Magento опирается на проверенные архитектурные и программные паттерны на PHP, что сделало её основой для целой экосистемы продуктов. Сегодня она объединяет разработчиков и продавцов по всему миру.

Через Adobe Commerce Marketplace доступно более 9500 сторонних тем и расширений, и это лишь малая часть возможностей, которые предоставляет Magento.

Стандарты кода Magento

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

Для автоматической проверки соответствия кода стандартам используется PHP_CodeSniffer — инструмент, который помогает вовремя выявлять ошибки и нарушения.

Стандарты кода Magento охватывают ключевые аспекты:

  • Использование безопасных функций;
  • Корректный синтаксис PHP;
  • Соблюдение рекомендаций PSR;
  • Правильная обработка исключений;
  • Применение подходящих паттернов программирования;
  • Защита от несанкционированного вывода данных;
  • Отказ от устаревших функций PHP;
  • Контроль глубины вложенности логики;
  • Устранение пустых блоков кода.

Глубокое понимание архитектуры Magento, принципов кодирования и стандартов PHP позволяет разработчикам раскрывать весь потенциал платформы и создавать надёжные решения для eCommerce.

Ключевые технологии в Magento

Фронтенд

Интерфейс Magento строится на технологиях HTML, CSS, JavaScript, React и PHP.

Adobe предлагает разные уровни кастомизации дизайна:

  • Простые правки через CSS;
  • Более сложные — через LESS и XML;
  • Глубокие изменения структуры шаблонов — через PHTML-файлы.

База данных

Magento использует MySQL и её форки (PerconaDB, MariaDB) с моделью хранения Entity–Attribute–Value (EAV) для структурирования основных данных. С версии 2.4 платформа поддерживает MySQL 8, который в два раза быстрее предыдущей версии 5.7.

Поисковый движок

До версии 2.3.x поиск работал на основе MySQL. С версии 2.4 по умолчанию используется Elasticsearch — масштабируемый движок, который индексирует большие объёмы данных, выдаёт результаты в реальном времени и поддерживает подсказки и рекомендации.

При использовании других движков важно проверять их совместимость с Magento.

HTTP-ускоритель

Adobe рекомендует Varnish — HTTP-ускоритель, который кэширует статические запросы и разгружает сервер, повышая скорость отклика магазинов с высокой нагрузкой.

Кэширование

Magento поддерживает полностраничное кэширование и хранение данных как в файловой системе, так и в базе. Оптимальная схема:

  • Varnish — для замены стандартного кэширования страниц;
  • Redis — для кэширования сессий в оперативной памяти, обеспечивая отклик менее чем за миллисекунду.

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

Magento — это результат сочетания лучших решений с открытым исходным кодом. В её основе — технологии, которые зарекомендовали себя во всём мире: MySQL, PHP, RequireJS, Varnish, Redis, React и другие. Такое сочетание обеспечивает платформе надёжность, гибкость, масштабируемость и высокую производительность, необходимые для современных eCommerce-проектов.

Если ваша компания находится на этапе выбора, а вопросов пока больше, чем ответов, команда Mygento готова поделиться экспертизой и помочь выстроить стратегию перехода, опираясь на ваш бизнес-кейс и цели роста. Свяжитесь с нами — выведем ваш eCommerce на новый уровень.

А также подписывайтесь на Telegram и блог Mygento — рассказываем, как решаем сложные задачи в екоме с фокусом на технологичность и бизнес-логику.

15
Начать дискуссию