Как переписать модуль с magento 1 на magento 2
TRANSCRIPT
![Page 1: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/1.jpg)
MAGENTO 2RELEASE EVENT CHERNIVTSI
Как переписать модуль с Magento 1 на Magento 2?
19 декабря 2015
![Page 2: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/2.jpg)
Радченко АлександрSoftware Engineer at Eltrino
facebook.com/mulder.ua
vk.com/mulder_ua
![Page 3: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/3.jpg)
Модули
![Page 4: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/4.jpg)
Конфигурационные файлы
Что нового?
● Разбиты на более мелкие файлы● Добавлена XSD валидация
![Page 5: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/5.jpg)
Конфигурационные файлы
![Page 6: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/6.jpg)
Как добавить новый модуль
![Page 7: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/7.jpg)
Как добавить новый модуль
![Page 8: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/8.jpg)
Setup● Все файлы находятся в директории Setup● Все установочные файлы стали классами,
которые имплементируют один из интерфейсов:
– InstallSchemaInterface– InstallDataInterface– UpgradeDataInterface– UpgradeSchemaInterface
![Page 9: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/9.jpg)
Setup
![Page 10: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/10.jpg)
Как добавить новый модуль
php bin/magento module:enable Eltrino_Event
php bin/magento setup:upgrade
php bin/magento module:status
![Page 11: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/11.jpg)
Системное менюMagento 1.9
![Page 12: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/12.jpg)
Системное меню
Magento 2
![Page 13: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/13.jpg)
Routes
![Page 14: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/14.jpg)
LayoutsHandle = routeName_Controller_Action
![Page 15: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/15.jpg)
КонтроллерыControllerClass::Action => Controller/ActionClass
![Page 16: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/16.jpg)
Контроллеры● Каждый экшен должен имплементировать
\Magento\Framework\App\ActionInterface● Каждый экшен имеет функцию execute()
которая возвращает \Magento\Framework\Controller\ResultInterface|ResponseInterface(Redirect, Layout, Json, Forward и др. )
![Page 17: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/17.jpg)
Контроллеры
![Page 18: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/18.jpg)
Класс Mage::
Magento 1.9 Magento 2Mage::getModel FactoryMage::helperMage::getSingletonMage::getResourceModel
Singleton
![Page 19: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/19.jpg)
Dependency InjectionDependency (зависимость) - это объект, который может быть использован в классе. Injection (внедрение) процесса передачи зависимости.
Dependency Injection - это дизайн паттерн, который реализует принцип "инверсии управления" для управления зависимостями. То есть, появляется механизм который создает, контролирует и передает объекты в клиентский класс. В Magento 2 ответственность за это берет на себя ObjectManager .
![Page 20: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/20.jpg)
Object ManagerObjectManager - это часть инфраструктуры фреймворка; данный механизм сработает автоматически при создании объектов и не требует вмешательства. В большинстве случаев нас устраивает такое поведение.
ВАЖНО! НЕ ИСПОЛЬЗУЙТЕ OBJECT MANAGER ДЛЯ ТРИВИАЛЬНОГО СОЗДАНИЯ ОБЪЕКТОВ.
![Page 21: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/21.jpg)
Задачи которые выполняются при помощи Di и ObjectManager
● Создание объектов● Rewrites● Interception (Плагины)● Конфигурация входящих аргументов класса
![Page 22: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/22.jpg)
Получение объекта
![Page 23: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/23.jpg)
Получение объекта
![Page 24: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/24.jpg)
Получение объекта
![Page 25: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/25.jpg)
Кодогенератор
![Page 26: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/26.jpg)
ProxyProxy в Magento 2 используется для громоздких объектов с большим количеством зависимостей. Magento создает обертку над классом, реализуя “Lazy Load”.
Создать Proxy просто, достаточно дописать окончание ClassNameProxy как и в случае с фабрикой.
![Page 27: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/27.jpg)
Magento plug-ins
![Page 28: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/28.jpg)
Magento plug-ins
![Page 29: Как переписать модуль с Magento 1 на Magento 2](https://reader034.vdocuments.site/reader034/viewer/2022042517/58792acf1a28ab7c448b550d/html5/thumbnails/29.jpg)
Вопросы и ответы