SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Techniken in Magento 2
Daniel Rose & David Verholen - Techniken in Magento 2 2
Daniel Rose
● Magento Developer seit 2010
● Zertifiziert seit 2014
● Leiter der Magento-Entwicklung
(brandung GmbH & Co. KG)
Daniel Rose & David Verholen - Techniken in Magento 2 3
David Verholen
● Magento Developer seit 2011
● Zertifiziert seit 2015
● Magento-Entwickler
(brandung GmbH & Co. KG)
Daniel Rose & David Verholen - Techniken in Magento 2 4
Inhalt
● Composer
● Service Contracts
● Dependecy Injection
● Code Generation
● Plugins
Daniel Rose & David Verholen - Techniken in Magento 2 5
Inhalt
● Composer
● Service Contracts
● Dependecy Injection
● Code Generation
● Plugins
Daniel Rose & David Verholen - Techniken in Magento 2 6
Composer
● Module gekapselt in einem Ordner
M1 M2
Daniel Rose & David Verholen - Techniken in Magento 2 7
Composer
● Component Registrar
Daniel Rose & David Verholen - Techniken in Magento 2 8
Composer
● Autoloading Bragento2SliderBlockSlider
Daniel Rose & David Verholen - Techniken in Magento 2 9
Inhalt
● Composer
● Service Contracts
● Dependecy Injection
● Code Generation
● Plugins
Daniel Rose & David Verholen - Techniken in Magento 2 10
Service Contracts
● Set an PHP-
Interfaces
– Data Interface
● Schützt die
Datenintegrität
– Service Interfaces
● Businesslogik wird
nach außen versteckt
Quelle: http://devdocs.magento.com/guides/v2.0/extension-
dev-guide/service-contracts/service-contracts.html
Daniel Rose & David Verholen - Techniken in Magento 2 11
Inhalt
● Composer
● Service Contracts
● Dependecy Injection
● Code Generation
● Plugins
Daniel Rose & David Verholen - Techniken in Magento 2 12
Dependency Injection
● Entwurfsmuster
● Reglementiert die
Abhängigkeiten eines
Objekts zur Laufzeit
● Lose Kopplung
● Constructor Injection
● ObjectManager &
di.xml
● Definitionen in di.xml
– Preference
– Type
– Virtual Types
Daniel Rose & David Verholen - Techniken in Magento 2 13
Demonstration
Daniel Rose & David Verholen - Techniken in Magento 2 14
Inhalt
● Composer
● Service Contracts
● Dependecy Injection
● Code Generation
● Plugins
Daniel Rose & David Verholen - Techniken in Magento 2 15
Code Generation
● Factory
– Erstellung von Non Injectables
● MagentoCatalogApiDataProductInterfaceFactory
● Proxy
– Class Wrapper zur Verzögerung der
Objektinstantiierung bis zur ersten Benutzung
● MagentoCatalogModelSessionProxy
● (Plugin)
Daniel Rose & David Verholen - Techniken in Magento 2 16
Factory Beispiel
Daniel Rose & David Verholen - Techniken in Magento 2 17
Proxy Beispiel
Für MagentoCatalogApiProductRepositoryInterface
● Für jede public Methode der
Originalklasse wird eine Methode in der
Proxy Klasse erstellt.
● Ein Objekt der Originalklasse wird beim
ersten Aufruf einer Methode erzeugt
Daniel Rose & David Verholen - Techniken in Magento 2 18
Inhalt
● Composer
● Service Contracts
● Dependecy Injection
● Code Generation
● Plugins
Daniel Rose & David Verholen - Techniken in Magento 2 19
Plugins
● Interceptor Pattern
– Entwurfsmuster zur gezielten Erweiterung /
Manipulation des Verhaltens einer Methode
Daniel Rose & David Verholen - Techniken in Magento 2 20
Plugins
● Vorraussetzungen
– Klasse wird über den Magento ObjectManager
geladen
– Methode muss public und darf nicht final sein
● Best Practices
– @api annotation
Daniel Rose & David Verholen - Techniken in Magento 2 21
Plugins
MagentoCustomerModelResourceModelVisitor
MagentoCatalogModelPluginLog
Daniel Rose & David Verholen - Techniken in Magento 2 22
Interceptor Beispiel
Daniel Rose & David Verholen - Techniken in Magento 2 23
Vielen Dank

Weitere ähnliche Inhalte

Ähnlich wie Techniken in Magento 2

TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...Marc Müller
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
Liebe Mobiliar, wie macht Ihr eigentlich DevOps?
Liebe Mobiliar, wie macht Ihr eigentlich DevOps?Liebe Mobiliar, wie macht Ihr eigentlich DevOps?
Liebe Mobiliar, wie macht Ihr eigentlich DevOps?Philipp Grossenbacher
 
Consumer- Driven Contract Testing - ein Überblick
Consumer- Driven Contract Testing - ein ÜberblickConsumer- Driven Contract Testing - ein Überblick
Consumer- Driven Contract Testing - ein Überblicktobiasflohre
 
Angebotspräsentation
AngebotspräsentationAngebotspräsentation
AngebotspräsentationCirco Loco
 
10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren
10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren
10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahrenJaromir Fojcik
 
theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...
theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...
theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...NETFOX AG
 
Mit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senkenMit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senkenDynatrace
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradleadesso AG
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrGunther Pippèrr
 
Die Macht der Zahlen
Die Macht der ZahlenDie Macht der Zahlen
Die Macht der ZahlenGerrit Beine
 
Full Stack Development mit JavaScript
Full Stack Development mit JavaScriptFull Stack Development mit JavaScript
Full Stack Development mit JavaScriptKai Donato
 
OSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven Wolfarth
OSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven WolfarthOSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven Wolfarth
OSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven WolfarthNETWAYS
 
Identity und Access Management mit One Identity - Ein Überblick
Identity und Access Management mit One Identity - Ein ÜberblickIdentity und Access Management mit One Identity - Ein Überblick
Identity und Access Management mit One Identity - Ein ÜberblickIBsolution GmbH
 
Container Tag – Nie mehr warten auf die IT! - Tag Management Lösung
Container Tag – Nie mehr warten auf die IT! - Tag Management LösungContainer Tag – Nie mehr warten auf die IT! - Tag Management Lösung
Container Tag – Nie mehr warten auf die IT! - Tag Management LösungConnected-Blog
 
Firmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGFirmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGRoland Löffler
 

Ähnlich wie Techniken in Magento 2 (20)

TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Liebe Mobiliar, wie macht Ihr eigentlich DevOps?
Liebe Mobiliar, wie macht Ihr eigentlich DevOps?Liebe Mobiliar, wie macht Ihr eigentlich DevOps?
Liebe Mobiliar, wie macht Ihr eigentlich DevOps?
 
Consumer- Driven Contract Testing - ein Überblick
Consumer- Driven Contract Testing - ein ÜberblickConsumer- Driven Contract Testing - ein Überblick
Consumer- Driven Contract Testing - ein Überblick
 
Angebotspräsentation
AngebotspräsentationAngebotspräsentation
Angebotspräsentation
 
10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren
10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren
10 Wege, wie Sie Ihr Magento-Projekt vor die Wand fahren
 
theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...
theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...
theGuard! und SMART SUPPORT / BPM Veranstaltung Berlin 2009 10 15 - Praxis Te...
 
Mit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senkenMit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senken
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradle
 
Magento 2 ist da
Magento 2 ist daMagento 2 ist da
Magento 2 ist da
 
Magento 2 ist da
Magento 2 ist daMagento 2 ist da
Magento 2 ist da
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
Zinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.deZinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.de
 
Die Macht der Zahlen
Die Macht der ZahlenDie Macht der Zahlen
Die Macht der Zahlen
 
Full Stack Development mit JavaScript
Full Stack Development mit JavaScriptFull Stack Development mit JavaScript
Full Stack Development mit JavaScript
 
OSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven Wolfarth
OSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven WolfarthOSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven Wolfarth
OSMC 2012 | Corporate-IT-Monitoring bei der ING-DiBa AG by Dr. Sven Wolfarth
 
Identity und Access Management mit One Identity - Ein Überblick
Identity und Access Management mit One Identity - Ein ÜberblickIdentity und Access Management mit One Identity - Ein Überblick
Identity und Access Management mit One Identity - Ein Überblick
 
Container Tag – Nie mehr warten auf die IT! - Tag Management Lösung
Container Tag – Nie mehr warten auf die IT! - Tag Management LösungContainer Tag – Nie mehr warten auf die IT! - Tag Management Lösung
Container Tag – Nie mehr warten auf die IT! - Tag Management Lösung
 
Firmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGFirmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AG
 

Techniken in Magento 2

  • 2. Daniel Rose & David Verholen - Techniken in Magento 2 2 Daniel Rose ● Magento Developer seit 2010 ● Zertifiziert seit 2014 ● Leiter der Magento-Entwicklung (brandung GmbH & Co. KG)
  • 3. Daniel Rose & David Verholen - Techniken in Magento 2 3 David Verholen ● Magento Developer seit 2011 ● Zertifiziert seit 2015 ● Magento-Entwickler (brandung GmbH & Co. KG)
  • 4. Daniel Rose & David Verholen - Techniken in Magento 2 4 Inhalt ● Composer ● Service Contracts ● Dependecy Injection ● Code Generation ● Plugins
  • 5. Daniel Rose & David Verholen - Techniken in Magento 2 5 Inhalt ● Composer ● Service Contracts ● Dependecy Injection ● Code Generation ● Plugins
  • 6. Daniel Rose & David Verholen - Techniken in Magento 2 6 Composer ● Module gekapselt in einem Ordner M1 M2
  • 7. Daniel Rose & David Verholen - Techniken in Magento 2 7 Composer ● Component Registrar
  • 8. Daniel Rose & David Verholen - Techniken in Magento 2 8 Composer ● Autoloading Bragento2SliderBlockSlider
  • 9. Daniel Rose & David Verholen - Techniken in Magento 2 9 Inhalt ● Composer ● Service Contracts ● Dependecy Injection ● Code Generation ● Plugins
  • 10. Daniel Rose & David Verholen - Techniken in Magento 2 10 Service Contracts ● Set an PHP- Interfaces – Data Interface ● Schützt die Datenintegrität – Service Interfaces ● Businesslogik wird nach außen versteckt Quelle: http://devdocs.magento.com/guides/v2.0/extension- dev-guide/service-contracts/service-contracts.html
  • 11. Daniel Rose & David Verholen - Techniken in Magento 2 11 Inhalt ● Composer ● Service Contracts ● Dependecy Injection ● Code Generation ● Plugins
  • 12. Daniel Rose & David Verholen - Techniken in Magento 2 12 Dependency Injection ● Entwurfsmuster ● Reglementiert die Abhängigkeiten eines Objekts zur Laufzeit ● Lose Kopplung ● Constructor Injection ● ObjectManager & di.xml ● Definitionen in di.xml – Preference – Type – Virtual Types
  • 13. Daniel Rose & David Verholen - Techniken in Magento 2 13 Demonstration
  • 14. Daniel Rose & David Verholen - Techniken in Magento 2 14 Inhalt ● Composer ● Service Contracts ● Dependecy Injection ● Code Generation ● Plugins
  • 15. Daniel Rose & David Verholen - Techniken in Magento 2 15 Code Generation ● Factory – Erstellung von Non Injectables ● MagentoCatalogApiDataProductInterfaceFactory ● Proxy – Class Wrapper zur Verzögerung der Objektinstantiierung bis zur ersten Benutzung ● MagentoCatalogModelSessionProxy ● (Plugin)
  • 16. Daniel Rose & David Verholen - Techniken in Magento 2 16 Factory Beispiel
  • 17. Daniel Rose & David Verholen - Techniken in Magento 2 17 Proxy Beispiel Für MagentoCatalogApiProductRepositoryInterface ● Für jede public Methode der Originalklasse wird eine Methode in der Proxy Klasse erstellt. ● Ein Objekt der Originalklasse wird beim ersten Aufruf einer Methode erzeugt
  • 18. Daniel Rose & David Verholen - Techniken in Magento 2 18 Inhalt ● Composer ● Service Contracts ● Dependecy Injection ● Code Generation ● Plugins
  • 19. Daniel Rose & David Verholen - Techniken in Magento 2 19 Plugins ● Interceptor Pattern – Entwurfsmuster zur gezielten Erweiterung / Manipulation des Verhaltens einer Methode
  • 20. Daniel Rose & David Verholen - Techniken in Magento 2 20 Plugins ● Vorraussetzungen – Klasse wird über den Magento ObjectManager geladen – Methode muss public und darf nicht final sein ● Best Practices – @api annotation
  • 21. Daniel Rose & David Verholen - Techniken in Magento 2 21 Plugins MagentoCustomerModelResourceModelVisitor MagentoCatalogModelPluginLog
  • 22. Daniel Rose & David Verholen - Techniken in Magento 2 22 Interceptor Beispiel
  • 23. Daniel Rose & David Verholen - Techniken in Magento 2 23 Vielen Dank