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