На момент создания (2007 год) архитектура Magento 1 была инновационной, сильно отличалась от архитектуры существовавших в тот момен на рынке систем и способствовала тому, что Magento за 3 года (с 2010 года) стала самой популярной в мире системой для управления интернет-магазинами, остаётся ей до сих пор, а также занимает заметное место в сегменте систем для крупных и известных магазинов.
С момента разработки технологии Magento 1 уже прошло 8 лет, и Magento 2 является новым поколением технологии.
Инновационная архитектура
Говоря простым языком, архитектура Magento 2 позволяет качественно разработанным модулям для Magento 2 быть более совместимыми друг с другом и с ядром. Снижается вероятность поломки магазина из-за установки нового модуля. У администратора больше возможностей плавно наращивать и модернизировать свой магазин новыми модулями с меньшим риском поломать то, что уже работает.
Например, для Magento 1 существует проблема «Системный класс перекрывают конфликтующие между собой классы», которую разработчик модулей никак обойти не может: архитектура Magento 1 и возможности PHP 5.2 этого не позволяют (замечу, что сама возможность перекрывать системные классы, не трогая их — это то, чего до сих пор нет в большинстве других движков, в том числе и в Битриксе, который вообще построен на технологиях начала 2000-х, поэтому технологически даже старая Magento 1 превосходит многие современные движки).
Magento 2 же поддерживает плагины, которые позволяют не перекрывать класс целиком, а точечно выполнять микро-действия до, после и вокруг выполения какого-либо метода ядра. Это является гигантским шагом вперёд: на рынке нет других систем, которые обладают такой технологией. Повторяется та же ситуация, что и 8 лет назад: выходящая Magento 2 технологически заметно превосходит все присутствующие сейчас на рынке системы.
Во многом инновационная архитектура стала возможной в результате использования технологий современных версий языка PHP.
Magento 1 разработана на основе возможностей языка PHP 5.2 (вышедшего 9 лет назад в ноябре 2006 года). Magento 1 поддерживает более современные версии языка 5.3 и 5.4 лишь пассивно: она с ними работает, однако не использует их инновационные возможности с целью сохранения совместимости с версией 5.2.
Magento 2 разработана на основе возможностей языка PHP 5.5 (вышедшего 2 года назад в июне 2013 года), и в то же время поддерживает самые свежие и современные версии PHP 5.6, PHP 7 и HHVM.
Новые возможности языка PHP стали фундаментом для инновационной архитектуры Magento 2.
Другие ключевые технологии Magento 2 опишу кратко и простым языком, чтобы не делать статью слишком технической:
- Composer: делает процесс обновления системы более надёжным и унифицированным.
- Git: фундамент открытости процесса разработки (читайте ниже).
- Модульные тесты: позволяют убедиться, что система не ломается от вносимых изменений.
- Knockout: фундамент для построения модулями сложных, интерактивных, современных пользовательских интерфейсов (посмотрите, например, как происходит создание настраиваемого товара).
- Less: упрощает стилизацию оформительских тем и интерфейса модулей.
Открытый процесс разработки
Magento 1 также является системой с открытым исходным кодом, однако процесс разработки был медленным и закрытым от партнёров.
Например, даже просто для того, чтобы посмотреть реестр дефектов Magento 1 — требуется авторизация, а это значит, что реестр дефектов не индексируется поисковыми системами и найти там что-то релевантное крайне сложно.
Magento 2 в качестве публичной площадки для разработки использует GitHub: https://github.com/magento/magento2
Очень просто сообщить о дефекте. Сотрудники Magento 2 быстро и качественно реагирует.
Я сам уже сообщил о 106 дефектах и очень доволен качеством реакции: в поддержке участвуют не 1-2, а несколько десятков сотрудников Magento 2. Видно, что команда Magento 2 велика и хорошо финансируется: трудовых ресурсов много, дефекты быстро устраняются да и вообще на пути к релизу система быстро развивается.