SlideShare ist ein Scribd-Unternehmen logo
Flexible Schnittstellen
durch Event/Observer
Agenda
•  Event/Observer – Allgemein
•  Event/Observer – In Magento
•  Praxisbeispiel
•  Diskussion / Austausch / Eigene Erfahrungen
04.11.2010 ITABS GbR – Rouven Alexander Rieker 2
EVENT/OBSERVER – ALLGEMEIN
3ITABS GbR – Rouven Alexander Rieker04.11.2010
Definition
Das Subject/Observer Pattern definiert eine Eins-zu-n-Abhängigkeit
zwischen einem Subjekt und beliebig vielen Beobachtern. Wenn
sich der Zustand des Objekts ändert, werden die abhängigen
Objekte automatisch benachrichtigt.
Buch-Quelle: PHP Design Patterns
ITABS GbR – Rouven Alexander Rieker 404.11.2010
Fakten
•  Geringere Abhängigkeit von Modulen untereinander
•  Updatesichere Entwicklung möglich, da gegen Schnittstelle
entwickelt wird
•  Objekte können miteinander interagieren ohne direkt abhängig
voneinander zu sein
•  Objekt können zur Laufzeit „manipuliert“ werden
•  Eignen sich nicht für Veränderung des Kerns, sondern für die
Implementierung neuer Funktionen
ITABS GbR – Rouven Alexander Rieker 504.11.2010
EVENT/OBSERVER – IN MAGENTO
6ITABS GbR – Rouven Alexander Rieker04.11.2010
Event/Observer in Magento?
•  Derzeit 298 Events im Magento-Core – Formatierte Liste
herunterladbar unter:
downloads.itabs.de/public/magento/magento-events-1.4.1.1.xls
•  Eigene Events in eigenen Modulen sind problemlos möglich
–  Möglichkeiten schaffen, die Abhängigkeiten der eigenen Modulen
von anderen zu reduzieren
•  Definition eines Events geschieht in der config.xml im Abschnitt
<global>, <frontend> oder <adminhtml>
•  Werden im „Model“-Verzeichnis des Moduls abgelegt
ITABS GbR – Rouven Alexander Rieker 704.11.2010
Programmablauf mit Event/
Observer in Magento
ITABS GbR – Rouven Alexander Rieker 804.11.2010
Beteiligte Dateien während es
Programmablaufs
Datei Funk*on
app/Mage.php 	
   	
   	
   	
   dispatchEvent()
app/code/core/Mage/Model/App.php dispatchEvent()
	
  	
  	
  lib/Varien/Event.php __construct()
	
  	
  	
  lib/Varien/Event/Observer.php __construct()
app/code/core/Mage/Model/App.php _callObserverMethod()
	
  	
  	
  app/code/pool/Namespace/Module/Model/Observer.php myObserverMethod()
ITABS GbR – Rouven Alexander Rieker 904.11.2010
Definition in der config.xml
...
<events>
<event_name>
<observers>
<module_observer_name>
<type>singleton</type>
<class>module/observer</class>
<method>myObserverMethod</method>
</module_observer_name>
</observers
</event_name>
</events>
...
ITABS GbR – Rouven Alexander Rieker 1004.11.2010
PRAXISBEISPIELE
11ITABS GbR – Rouven Alexander Rieker04.11.2010
Praxisbeispiel 1
•  Ein Shop-Besitzer möchte zur Veranstaltung „Meet Magento“
allen Magento-Developern sein einziges Produkt (Produkt-Typ:
Einfaches Produkt) statt 999,99 € zum Sonderpreis von 499,99 €
anbieten.
•  Welche Events werden benötigt?
–  catalog_product_get_final_price
ITABS GbR – Rouven Alexander Rieker 1204.11.2010
Praxisbeispiel 2
•  Ein Kunde möchte, dass alle Authorisierungsaktionen im
Magento-Backend bzw. der Magento-API in einer eigenen Datei
geloggt werden.
•  Welche Events werden benötigt?
–  admin_user_authenticate_after
–  api_user_authenticated
•  Vorteil: Überschreiben wäre in diesem Fall wesentlich
aufwendiger gewesen, so relativ einfach und die eigene
Business-Logik in einer Datei zusammengefasst.
ITABS GbR – Rouven Alexander Rieker 1304.11.2010
Diskussion, Austausch,
Eigene Erfahrungen
14ITABS GbR – Rouven Alexander Rieker04.11.2010
VIELEN DANK!
Meine Kontaktdaten:
E-Mail: rouven.rieker@itabs.de
Telefon: 07022-308404-13
Adresse: ITABS GbR, Zementwerk 1, 72622 Nürtingen
Twitter: twitter.com/therouv
04.11.2010 15ITABS GbR – Rouven Alexander Rieker

Weitere ähnliche Inhalte

Andere mochten auch

Salto de longitud
Salto de longitudSalto de longitud
Salto de longitud
rubenfg23
 
Rss
Rss Rss
Rss
mcoba22
 
Parallelverschiebung
ParallelverschiebungParallelverschiebung
Parallelverschiebungfischernet
 
Adobe Formulare für SAP Business ByDesign
Adobe Formulare für SAP Business ByDesignAdobe Formulare für SAP Business ByDesign
Adobe Formulare für SAP Business ByDesignanthesis GmbH
 
DELFINES ROSADITOS
DELFINES ROSADITOS DELFINES ROSADITOS
DELFINES ROSADITOS
delfinessouthern
 
Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4 nicola...
Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4   nicola...Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4   nicola...
Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4 nicola...
manuelagarzon1232
 
WEB 1.0 Y WEB 2.0
WEB 1.0 Y WEB 2.0WEB 1.0 Y WEB 2.0
WEB 1.0 Y WEB 2.0
andres7444
 
El interior de un pc
El interior de un pcEl interior de un pc
El interior de un pc
CaAsVe
 
Módulo 1
Módulo 1Módulo 1
Cristobancolon
CristobancolonCristobancolon
Cristobancolon
joselin69
 
RSS
RSSRSS
LECTORES RSS
LECTORES  RSSLECTORES  RSS
LECTORES RSS
yeidAbuitrago
 
Die Alpine Balance Hotel Rieser am Achensee
Die Alpine Balance Hotel Rieser am AchenseeDie Alpine Balance Hotel Rieser am Achensee
Die Alpine Balance Hotel Rieser am Achensee
Hotel Rieser
 
APRENDIZAJE UBICUO
APRENDIZAJE UBICUOAPRENDIZAJE UBICUO
APRENDIZAJE UBICUO
aleli56
 
Sociedad de la información
Sociedad de  la informaciónSociedad de  la información
Sociedad de la información
Teresa Ferreyra
 
Teleconferencia de daniel sánchez guzmán
Teleconferencia de daniel sánchez guzmánTeleconferencia de daniel sánchez guzmán
Teleconferencia de daniel sánchez guzmán
apfaglobal
 

Andere mochten auch (16)

Salto de longitud
Salto de longitudSalto de longitud
Salto de longitud
 
Rss
Rss Rss
Rss
 
Parallelverschiebung
ParallelverschiebungParallelverschiebung
Parallelverschiebung
 
Adobe Formulare für SAP Business ByDesign
Adobe Formulare für SAP Business ByDesignAdobe Formulare für SAP Business ByDesign
Adobe Formulare für SAP Business ByDesign
 
DELFINES ROSADITOS
DELFINES ROSADITOS DELFINES ROSADITOS
DELFINES ROSADITOS
 
Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4 nicola...
Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4   nicola...Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4   nicola...
Presentación nuevas tecgonoloigas presentado por manuela garzon 10 4 nicola...
 
WEB 1.0 Y WEB 2.0
WEB 1.0 Y WEB 2.0WEB 1.0 Y WEB 2.0
WEB 1.0 Y WEB 2.0
 
El interior de un pc
El interior de un pcEl interior de un pc
El interior de un pc
 
Módulo 1
Módulo 1Módulo 1
Módulo 1
 
Cristobancolon
CristobancolonCristobancolon
Cristobancolon
 
RSS
RSSRSS
RSS
 
LECTORES RSS
LECTORES  RSSLECTORES  RSS
LECTORES RSS
 
Die Alpine Balance Hotel Rieser am Achensee
Die Alpine Balance Hotel Rieser am AchenseeDie Alpine Balance Hotel Rieser am Achensee
Die Alpine Balance Hotel Rieser am Achensee
 
APRENDIZAJE UBICUO
APRENDIZAJE UBICUOAPRENDIZAJE UBICUO
APRENDIZAJE UBICUO
 
Sociedad de la información
Sociedad de  la informaciónSociedad de  la información
Sociedad de la información
 
Teleconferencia de daniel sánchez guzmán
Teleconferencia de daniel sánchez guzmánTeleconferencia de daniel sánchez guzmán
Teleconferencia de daniel sánchez guzmán
 

Ähnlich wie Magento: Event/Observer

WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagWPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
Hendrik Lösch
 
MVVM mit WPF
MVVM mit WPFMVVM mit WPF
MVVM mit WPF
Hendrik Lösch
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
Stefan Scheidt
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
Ralf Ruethlein
 
Varianten des "Observer Pattern"
Varianten des "Observer Pattern"Varianten des "Observer Pattern"
Varianten des "Observer Pattern"
Thomas Mentzel
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
OPITZ CONSULTING Deutschland
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
Digicomp Academy AG
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101gueste4be40
 
Migration zum Zend Framework 3
Migration zum Zend Framework 3Migration zum Zend Framework 3
Migration zum Zend Framework 3
Ralf Eggert
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
Sebastian Springer
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)
Daniel Fesenmeyer
 
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Jürg Stuker
 
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...OSGiUsers
 
Zend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesZend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
Ralf Eggert
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
Christian Keuerleber
 
Pimcore
PimcorePimcore
Pimcore
timglabisch
 
OpenSocial und Apache Shindig
OpenSocial und Apache ShindigOpenSocial und Apache Shindig
OpenSocial und Apache Shindig
Mayflower GmbH
 
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
Christian Guenther
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
QAware GmbH
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
Matthias Jauernig
 

Ähnlich wie Magento: Event/Observer (20)

WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagWPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
 
MVVM mit WPF
MVVM mit WPFMVVM mit WPF
MVVM mit WPF
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
 
Varianten des "Observer Pattern"
Varianten des "Observer Pattern"Varianten des "Observer Pattern"
Varianten des "Observer Pattern"
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
2009 03 17 Spring101
2009 03 17 Spring1012009 03 17 Spring101
2009 03 17 Spring101
 
Migration zum Zend Framework 3
Migration zum Zend Framework 3Migration zum Zend Framework 3
Migration zum Zend Framework 3
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)
 
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
 
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
 
Zend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesZend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 
Pimcore
PimcorePimcore
Pimcore
 
OpenSocial und Apache Shindig
OpenSocial und Apache ShindigOpenSocial und Apache Shindig
OpenSocial und Apache Shindig
 
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
 

Magento: Event/Observer

  • 2. Agenda •  Event/Observer – Allgemein •  Event/Observer – In Magento •  Praxisbeispiel •  Diskussion / Austausch / Eigene Erfahrungen 04.11.2010 ITABS GbR – Rouven Alexander Rieker 2
  • 3. EVENT/OBSERVER – ALLGEMEIN 3ITABS GbR – Rouven Alexander Rieker04.11.2010
  • 4. Definition Das Subject/Observer Pattern definiert eine Eins-zu-n-Abhängigkeit zwischen einem Subjekt und beliebig vielen Beobachtern. Wenn sich der Zustand des Objekts ändert, werden die abhängigen Objekte automatisch benachrichtigt. Buch-Quelle: PHP Design Patterns ITABS GbR – Rouven Alexander Rieker 404.11.2010
  • 5. Fakten •  Geringere Abhängigkeit von Modulen untereinander •  Updatesichere Entwicklung möglich, da gegen Schnittstelle entwickelt wird •  Objekte können miteinander interagieren ohne direkt abhängig voneinander zu sein •  Objekt können zur Laufzeit „manipuliert“ werden •  Eignen sich nicht für Veränderung des Kerns, sondern für die Implementierung neuer Funktionen ITABS GbR – Rouven Alexander Rieker 504.11.2010
  • 6. EVENT/OBSERVER – IN MAGENTO 6ITABS GbR – Rouven Alexander Rieker04.11.2010
  • 7. Event/Observer in Magento? •  Derzeit 298 Events im Magento-Core – Formatierte Liste herunterladbar unter: downloads.itabs.de/public/magento/magento-events-1.4.1.1.xls •  Eigene Events in eigenen Modulen sind problemlos möglich –  Möglichkeiten schaffen, die Abhängigkeiten der eigenen Modulen von anderen zu reduzieren •  Definition eines Events geschieht in der config.xml im Abschnitt <global>, <frontend> oder <adminhtml> •  Werden im „Model“-Verzeichnis des Moduls abgelegt ITABS GbR – Rouven Alexander Rieker 704.11.2010
  • 8. Programmablauf mit Event/ Observer in Magento ITABS GbR – Rouven Alexander Rieker 804.11.2010
  • 9. Beteiligte Dateien während es Programmablaufs Datei Funk*on app/Mage.php         dispatchEvent() app/code/core/Mage/Model/App.php dispatchEvent()      lib/Varien/Event.php __construct()      lib/Varien/Event/Observer.php __construct() app/code/core/Mage/Model/App.php _callObserverMethod()      app/code/pool/Namespace/Module/Model/Observer.php myObserverMethod() ITABS GbR – Rouven Alexander Rieker 904.11.2010
  • 10. Definition in der config.xml ... <events> <event_name> <observers> <module_observer_name> <type>singleton</type> <class>module/observer</class> <method>myObserverMethod</method> </module_observer_name> </observers </event_name> </events> ... ITABS GbR – Rouven Alexander Rieker 1004.11.2010
  • 11. PRAXISBEISPIELE 11ITABS GbR – Rouven Alexander Rieker04.11.2010
  • 12. Praxisbeispiel 1 •  Ein Shop-Besitzer möchte zur Veranstaltung „Meet Magento“ allen Magento-Developern sein einziges Produkt (Produkt-Typ: Einfaches Produkt) statt 999,99 € zum Sonderpreis von 499,99 € anbieten. •  Welche Events werden benötigt? –  catalog_product_get_final_price ITABS GbR – Rouven Alexander Rieker 1204.11.2010
  • 13. Praxisbeispiel 2 •  Ein Kunde möchte, dass alle Authorisierungsaktionen im Magento-Backend bzw. der Magento-API in einer eigenen Datei geloggt werden. •  Welche Events werden benötigt? –  admin_user_authenticate_after –  api_user_authenticated •  Vorteil: Überschreiben wäre in diesem Fall wesentlich aufwendiger gewesen, so relativ einfach und die eigene Business-Logik in einer Datei zusammengefasst. ITABS GbR – Rouven Alexander Rieker 1304.11.2010
  • 14. Diskussion, Austausch, Eigene Erfahrungen 14ITABS GbR – Rouven Alexander Rieker04.11.2010
  • 15. VIELEN DANK! Meine Kontaktdaten: E-Mail: rouven.rieker@itabs.de Telefon: 07022-308404-13 Adresse: ITABS GbR, Zementwerk 1, 72622 Nürtingen Twitter: twitter.com/therouv 04.11.2010 15ITABS GbR – Rouven Alexander Rieker