Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

SCD13: Die technische Roadmap von Shopware 4

997 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

SCD13: Die technische Roadmap von Shopware 4

  1. 1. AGENDA Shopware 4.1 Refaktorierung Ausblick
  2. 2. SHOPWARE 4.1
  3. 3. TECHNISCHE ÄNDERUNGEN
  4. 4.  Weniger komplexe Queries im Frontend Queries skalieren besser Aufteilung der Lese- und SchreibzugriffeOPTIMIERTE KATEGORIESTRUKTUR
  5. 5.  Artikelmodul - Daten werden asynchron nachgeladen Artikel - Modul ist sofort verfügbar Split-View in Artikel-ÜbersichtNACHLADEN DER ARTIKELDATEN
  6. 6. NACHLADEN DER ARTIKELDATEN
  7. 7. PASSWORT-HASHING
  8. 8. PASSWORT-HASHING Probleme MD5 + SALT veraltetes Verfahren Passwort Übernahme bei der Shopmigration auf Shopware
  9. 9. PASSWORT-HASHING Lösung neuer Login Algorithmus Automatisch Umstellung auf bcrypt für sicheres Passworthashing Live Migration der Passwörter Passwörter können bei Shopmigration übernommen werden Über Plugin erweiterbar auf spezielle Algorithmen
  10. 10. PASSWORT-HASHING
  11. 11. RANDOM-GENERATOR
  12. 12. RANDOM-GENERATOR
  13. 13. RANDOM-GENERATOR// Returns random integerShopwareComponentsRandom::getInteger(5, 99);// Generate random string the following charlist: a-zA-Z0-9ShopwareComponentsRandom::getAlphanumericString(20);// Generate random float between 0..1ShopwareComponentsRandom::getFloat();
  14. 14. SICHERE DISPATCH-EVENTS
  15. 15. SICHERE DISPATCH EVENTS$this->subscribeEvent(        Enlight_Controller_Action_PostDispatch,        onPostDispatchFrontend);public function onPostDispatchFrontend(Enlight_Event_EventArgs $args){        $view    = $args->getSubject()->View();        $request = $args->getSubject()->Request();        if (!$request->isDispatched()            || $response->isException()            || $request->getModuleName() != frontend            || !$view->hasTemplate() ) {            return;         }         [...]}
  16. 16. SICHERE DISPATCH EVENTS$this->subscribeEvent(        Enlight_Controller_Action_PostDispatchSecure_Frontend ,        onPostDispatchFrontend);public function onPostDispatchFrontend(Enlight_Event_EventArgs $args){       [...]}
  17. 17. SICHERE DISPATCH EVENTS Enlight_Controller_Action_PreDispatch_{Modulname} Enlight_Controller_Action_PostDispatch_{Modulname} Enlight_Controller_Action_PostDispatchSecure Enlight_Controller_Action_PostDispatchSecure_{Modulname} Enlight_Controller_Action_PostDispatchSecure_{Modulname}_{Controllername}
  18. 18. CACHE-ORDNER
  19. 19. CACHE-ORDNER Refaktorierung der generierten Daten Caches Meta-Daten Proxies
  20. 20. PERFORMANCE
  21. 21. PERFORMANCE Frontend Generelle Query Optimierungen Optimierung Kategorie-Datenbank-Struktur Stabiler HTTP-Cache
  22. 22. PERFORMANCE Frontend Aggregierte Zwischenspeicherung der Marketingdaten Vollständige Auslagerung der SEO und Such –Indexgenerierung
  23. 23. PERFORMANCE Backend Pre-Loader für Backend-Module Asynchrones Nachladen von Modul-Content Optimierung HTTP-Requests Optimierung der Backend-Ressourcen Modul-Optimierung für große Datenmengen
  24. 24. PERFORMANCE
  25. 25. PERFORMANCE
  26. 26. PERFORMANCE
  27. 27. PERFORMANCE
  28. 28. MUSS MEIN PLUGIN ANGEPASST WERDEN?
  29. 29. MUSS MEIN PLUGIN ANGEPASST WERDEN?NEIN!
  30. 30. MUSS MEIN PLUGIN ANGEPASST WERDEN?Es sei denn...
  31. 31. MUSS MEIN PLUGIN ANGEPASST WERDEN?A. Ja, wenn Sie einen neuen Tab im Artikelmodul hinzufügenB. Ja, wenn Sie direkt per SQL auf die Kategorie-Tabellen zugreifen
  32. 32. UPGRADE – GUIDEUpgrade -GUIDE STEHT BEREIT!
  33. 33. REFAKTORIERUNG
  34. 34. REFAKTORIERUNG
  35. 35. SYMFONY 2
  36. 36. SYMFONY 2 Warum Symfony 2? Code-Qualität / Dokumentation / Community Shopware 4 verwendet Symfony 2 bereits http-Cache Model-Validierung Bepado wurde komplett auf Basis Symfony 2 entwickelt
  37. 37. REFAKTORIERUNG Sukzessives Vorgehen Zuerst Basket / Order Objekte Plugin-Hersteller & Partner erhalten frühzeitig Zugriff auf RC Der bestehende Code wird mit Unit-/Integrations-Tests abgesichert Sofern möglich werden die bestehenden Core-Klassen Events übernommen
  38. 38. AUSBLICK
  39. 39. DEVELOPER-TOOLBAR
  40. 40. DEVELOPER TOOLBAR
  41. 41. BACKEND STANDARD-KOMPONENTEN
  42. 42. BACKEND STANDARD KOMPONENTEN Vorgefertigten ExtJS Standardkomponenten Reduzierung des Entwicklungsaufwandes Leichte Erweiterbarkeit der Standardkomponenten Neuer Default PHP Backend Controller mit den vorgefertigten CRUDMethoden
  43. 43. RESPONSIVE - TEMPLATE
  44. 44. RESPONSIVE-TEMPLATE Ein Template für alle Geräte Gleicher Seitenaufbau und Interface Keine Installation notwendig
  45. 45. AUSBLICK Update auf ExtJS 4.2.0 ~ 20-25 % höhere Rendering-Performance Backend Performance-Verbesserungen & Erweiterung Rest-API Alte API wird in der 4.3.0 entfernt Entwickler-Goodies ab 4.2.0 – z.B. Events als Konstanten vordefinieren für Auto-Vervollständigung etc.
  46. 46. AUSBLICK

×