jtl-connector | anpassung & erweiterung der endpoints
TRANSCRIPT
JTL-Connector:Anpassung & Erweiterung
der EndpointsEin Workshop mit Daniel Böhmer & Christian Spoo
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Ablauf des Workshops• Einführung in Connector-Plugins• Technologische Grundlagen• Events• Architektur• Debugging
• Vorstellung eines Example-Plugins• Fragerunde• Abschluss
Dauer: ca. 30 Min.
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
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
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
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
Architektur
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Symfony EventDispatcher• Bibliothek zum Handling
von Ereignissen• Ein Event hat n Listener
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Die Bootstrap-Klasse• Namespace gleicht dem
Ordnerpfadplugins/izzle/demo/ izzle\demo
• Bootstrap-Klasse (izzle\demo\Bootstrap) implementiert IPlugin und registriert n Listener
• Bootstrap-Klassen werden automatisch gefunden und geladen
• Kein Eingriff in den Endpoint selbst nötig
Beispiel-Listener• Listener-Methode
bekommt das jeweilige Event
• Das Event beinhaltet das Main-Entity
• Objekte können so im Listener manipuliert werden
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
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
JTL-Software-GmbH, Daniel Böhmer & Christian Spoo
Fragen?
Dokumentation: http://docs.jtl-connector.deSourcecode: http://gitlab.jtl-software.de