2. Ablauf des Workshops
• Einführung in Connector-Plugins
• Technologische Grundlagen
• Events
• Architektur
• Debugging
• Vorstellung eines Example-Plugins
• Fragerunde
• Abschluss
Dauer: ca. 30 Min.
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
3. Einführung in Connector-Plugins
• Ereignisgesteuerter Aufruf
durch Connector-Core
• Automatischer Plugin-Loader
und Verwendung von
Dependency Injection (DI)
• Plugin ist losgelöst vom
eigentlichen Endpoint
• Zugriff auf alle Daten, die
JTL-Wawi übermittelt
4. Technologische Grundlagen
• Basiert auf objektorientierem
PHP nach 5.4-Sprachstandard
• Composer zur Verwaltung von
Abhängigkeiten
• Event-System auf Basis des
Symfony-EventDispatchers
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
5. Events
• Hauptentities (Product, Category etc.) haben jeweils 8 Events
• Wir unterscheiden Before- und After-Events, die zu den 4
jeweiligen Controllermethoden gehören:
• push, pull, delete und statistic
• z.B. ProductAfterPushEvent
• Das Eventobjekt bekommt das jeweilige Hauptentity als
Referenz
• Daten können also nicht nur gelesen, sondern z.B. vor dem Schreiben in die Shop-
Datenbank auch verändert werden
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
8. Die Bootstrap-Klasse
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
• Namespace gleicht dem Ordnerpfad
plugins/izzle/demo/ izzledemo
• Bootstrap-Klasse
(izzledemoBootstrap) implementiert
IPlugin und registriert n Listener
• Bootstrap-Klassen werden
automatisch gefunden und geladen
• Kein Eingriff in den Endpoint selbst
nötig
10. Debugging – serverseitig
• JTL-Connector schreibt eigene
Logdateien (via Monolog)
• gesamte RPC-Kommunikation
• Session-Handling
• endpointspezifische Logs
• weitere Kanäle können angelegt werden
• Loglevel konfigurierbar
• Logdateien werden mit Datum
versehen und automatisch rotiert
• Erweitertes Logging im Developer-
Modus
11. Debugging – clientseitig
• Connector-Tester
• zeigt direkte RPC-Ausgabe (JSON,
Baumstruktur, Response-Zeit)
• alle verfügbaren RPC-Calls können
abgesetzt werden
• nützlich, wenn der eigene Endpoint noch
am Anfang steht, oder zur Fehlersuche
12. JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Fragen?
Dokumentation: http://docs.jtl-connector.de
Sourcecode: http://gitlab.jtl-software.de