Что нового в Magento 2 (по сравнению с Magento 1.x)?

Что нового в Magento 2 (по сравнению с Magento 1.x)?



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

 

Основные изменения:

  • Поддержка HTML5, CSS3, jQuery, LESS
  • Файловая структура
  • Макеты
  • Контейнеры и Блоки
  • Документация (Wiki, DevDocs)

 

 

Некоторые из улучшений включают добавление тегов HTML5, встроенных в шаблоны, использование в стилях техник CSS3, а также встроенный препроцессор LESS. На стороне JavaScript хорошим изменением является переход от Prototype к jQuery в качестве основной библиотеки. Теперь очень активно используется jQuery UI и добавлен целый набор готовых пользовательских виджетов jQuery UI, которые можно использовать на своем сайте. Все загрузки JavaScript обрабатываются RequireJS и теперь не нужно беспокоиться из-за неправильной очередности подключения скриптов.

 

 

  1. CSS

В Magento 2 добавлять CSS стало проще, для этого нужен только файл-источник CSS стилей. Раньше приходилось добавлять CSS либо через XML, либо путем добавления кода <link> в секцию <head> через файл шаблона.

Если вы расширяете одну из встроенных тем (например, blank тему или Luma), чтобы настроить CSS, вы просто переопределяете .LESS-файл с оригинальными стилями используя эквивалентные имя/путь в вашей собственной теме. Например, вам нужно переопределить CSS-стили Корзины, которые первоначально определены в следующем файле:

app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/_module.less

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

app/design/frontend/Company/Theme/Magento_Checkout/web/css/source/_module.less

 



Вы также можете добавить свои собственные CSS-файлы. Это делается в файле default_head_blocks.xml, который находится в папке Magento_Theme в вашей теме, например:

app/design/frontend/Company/Theme/Magento_Theme/layout/default_head_blocks.xml

 

 

  1. Файловая структура

Файловая структура тем и модулей сильно отличается от Magento 1.x. Каждая папка с шаблоном имен <Package>_<Module> является компонентом сайта. Все составляющие папки skin перенесены в эти компоненты (отдельно в теме, и отдельно в модуле), что позволяет держать все ресурсы вместе, а это значительно облегчает использование пользовательской темы. Все картинки (медиа-ресурсы) перенесены из папки media в папку pub/media. Все системные и сторонние модули теперь находятся в корневой папке vendor (если они были установлены через Composer). Если вы создаете свой модуль, вам нужно, как и раньше, делать это в папке app/code/ (правда, без разделения на среды разработки).

 

 

  1. Макеты

В Magento 2 больше нет файла local.xml. Вместо этого используется весь нужный XML в каждом модуле. Если вы хотите изменить XML-файл для модуля, вам нужно будет создать новый XML-файл с тем же названием в эквивалентной структуре модуля в вашей теме и внести туда изменения (помните, что все атрибуты и определения из исходного модуля будут унаследованы в этот файл).

Еще одна замечательная особенность нового XML в Magento 2 – это действие move (перемещение). Раньше, если вы хотели куда-то переместить блок, вам нужно было отключать дочерний элемент, а затем вставлять его обратно в XML-макете. В Magento 2 для этого нужна только одна строка. Чтобы переместить элемент, вы просто ссылаетесь на него через его имя, а затем указываете пункт назначения (это может быть Контейнер или Блок).

Пример инструкции: <move element="catalog.leftnav" destination="content.top" after="-"/>

 

 

  1. Контейнеры и Блоки

Контейнер представляет собой структуру без контента (т.е., без содержимого, просто структуру), которая содержит другие Блоки и Контейнеры. Вы можете указать атрибуты и теги HTML и задать им идентификатор и/или класс. Это означает, что вы можете создавать HTML структуру с помощью макета, что было невозможно в Magento 1.x. Для расширения макета используются ноды referenceBlock и referenceContainer (другими словами, это ссылки на нужные Блоки и Контейнеры).

Более подробная информация о Контейнерах и Блоках имеется в нашей предыдущей статье.

 

 

  1. Документация по Мадженто 2

Создатели Magento 2 разработали очень детальную документацию по новой платформе. Настоятельно рекомендуется ознакомиться с ней по следующему адресу.

 

 

 

Краткий итог

В целом, Magento 2 определенно является большим улучшением по сравнению с версиями Magento 1.x. Есть много больших улучшений, таких как новая модульная структура кода и переопределение контента и XML-макета. Улучшения в JavaScript являются одним из самых больших изменений, поскольку теперь вы можете легко добавлять новые, и расширять существующие скрипты, не беспокоясь о всех зависимостях файлов.

Конечно, мы рассмотрели не все нововведения, но для этого недостаточно одной страницы. Мы будем публиковать отдельные статьи по наиболее интересным моментам новой платформы, поэтому следите за обновлениями на сайте!

Если у вас есть полезная информация по данной теме, не стесняйтесь делиться ею в комментариях ниже. Также напишите свое личное мнение о новой платформе.

 



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

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