Как переписать модуль с magento 1 на magento 2

29
MAGENTO 2 RELEASE EVENT CHERNIVTSI Как переписать модуль с Magento 1 на Magento 2? 19 декабря 2015

Upload: elogic

Post on 15-Apr-2017

475 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Как переписать модуль с Magento 1 на Magento 2

MAGENTO 2RELEASE EVENT CHERNIVTSI

Как переписать модуль с Magento 1 на Magento 2?

19 декабря 2015

Page 2: Как переписать модуль с Magento 1 на Magento 2

Радченко АлександрSoftware Engineer at Eltrino

facebook.com/mulder.ua

vk.com/mulder_ua

[email protected]

Page 3: Как переписать модуль с Magento 1 на Magento 2

Модули

Page 4: Как переписать модуль с Magento 1 на Magento 2

Конфигурационные файлы

Что нового?

● Разбиты на более мелкие файлы● Добавлена XSD валидация

Page 5: Как переписать модуль с Magento 1 на Magento 2

Конфигурационные файлы

Page 6: Как переписать модуль с Magento 1 на Magento 2

Как добавить новый модуль

Page 7: Как переписать модуль с Magento 1 на Magento 2

Как добавить новый модуль

Page 8: Как переписать модуль с Magento 1 на Magento 2

Setup● Все файлы находятся в директории Setup● Все установочные файлы стали классами,

которые имплементируют один из интерфейсов:

– InstallSchemaInterface– InstallDataInterface– UpgradeDataInterface– UpgradeSchemaInterface

Page 9: Как переписать модуль с Magento 1 на Magento 2

Setup

Page 10: Как переписать модуль с Magento 1 на Magento 2

Как добавить новый модуль

php bin/magento module:enable Eltrino_Event

php bin/magento setup:upgrade

php bin/magento module:status

Page 11: Как переписать модуль с Magento 1 на Magento 2

Системное менюMagento 1.9

Page 12: Как переписать модуль с Magento 1 на Magento 2

Системное меню

Magento 2

Page 13: Как переписать модуль с Magento 1 на Magento 2

Routes

Page 14: Как переписать модуль с Magento 1 на Magento 2

LayoutsHandle = routeName_Controller_Action

Page 15: Как переписать модуль с Magento 1 на Magento 2

КонтроллерыControllerClass::Action => Controller/ActionClass

Page 16: Как переписать модуль с Magento 1 на Magento 2

Контроллеры● Каждый экшен должен имплементировать

\Magento\Framework\App\ActionInterface● Каждый экшен имеет функцию execute()

которая возвращает \Magento\Framework\Controller\ResultInterface|ResponseInterface(Redirect, Layout, Json, Forward и др. )

Page 17: Как переписать модуль с Magento 1 на Magento 2

Контроллеры

Page 18: Как переписать модуль с Magento 1 на Magento 2

Класс Mage::

Magento 1.9 Magento 2Mage::getModel FactoryMage::helperMage::getSingletonMage::getResourceModel

Singleton

Page 19: Как переписать модуль с Magento 1 на Magento 2

Dependency InjectionDependency (зависимость) - это объект, который может быть использован в классе. Injection (внедрение) процесса передачи зависимости.

Dependency Injection - это дизайн паттерн, который реализует принцип "инверсии управления" для управления зависимостями. То есть, появляется механизм который создает, контролирует и передает объекты в клиентский класс. В Magento 2 ответственность за это берет на себя ObjectManager .

Page 20: Как переписать модуль с Magento 1 на Magento 2

Object ManagerObjectManager - это часть инфраструктуры фреймворка; данный механизм сработает автоматически при создании объектов и не требует вмешательства. В большинстве случаев нас устраивает такое поведение.

ВАЖНО! НЕ ИСПОЛЬЗУЙТЕ OBJECT MANAGER ДЛЯ ТРИВИАЛЬНОГО СОЗДАНИЯ ОБЪЕКТОВ.

Page 21: Как переписать модуль с Magento 1 на Magento 2

Задачи которые выполняются при помощи Di и ObjectManager

● Создание объектов● Rewrites● Interception (Плагины)● Конфигурация входящих аргументов класса

Page 22: Как переписать модуль с Magento 1 на Magento 2

Получение объекта

Page 23: Как переписать модуль с Magento 1 на Magento 2

Получение объекта

Page 24: Как переписать модуль с Magento 1 на Magento 2

Получение объекта

Page 25: Как переписать модуль с Magento 1 на Magento 2

Кодогенератор

Page 26: Как переписать модуль с Magento 1 на Magento 2

ProxyProxy в Magento 2 используется для громоздких объектов с большим количеством зависимостей. Magento создает обертку над классом, реализуя “Lazy Load”.

Создать Proxy просто, достаточно дописать окончание ClassNameProxy как и в случае с фабрикой.

Page 27: Как переписать модуль с Magento 1 на Magento 2

Magento plug-ins

Page 28: Как переписать модуль с Magento 1 на Magento 2

Magento plug-ins

Page 29: Как переписать модуль с Magento 1 на Magento 2

Вопросы и ответы