Was genau ist "lazy loading" in Oxid?

Hallo,

da ich gerade eine Modul mit einer eigener Tabelle in der DB schreibe, bin ich zum ersten Mal über das Thema “lazy loading” gestolpert.
Nach meinen ersten Recherchen, weiß ich nun, daß bei aktivierten “Lazy Loading” z.B. Felder aus einer Tabelle automatisch ausgelesen werden, sogar wenn man neue Felder hinzufügt. Außerdem kann “Lazy Loading” die Performance verbessern.

Nichts desto trotz, weiß ich immer noch nicht

a) was “lazy loading” in Oxid genau macht,

b) welche Vorteile / Nachteile es insgesamt hat

c) wie genau ich “lazy loading” für meine eigene Tabelle implementiere (Tutorial)?

Ich habe dazu auch nichts Genaueres Im Forum oder Sonstwo lesen können.

Hi Jason,

Lazy Loading ist dafür zuständig, dass wirklich nur die Daten aus der Datenbank geholt werden, die gebraucht werden, um unnötigen Overhead zu vermeiden. Lazy Loading musst du nicht explizit für eine Tabelle implementieren. Es reicht, wenn du die Option im Model per Property auf true setzt.

Okay, wenn ich diese Option im Model aktiviere, dann muss ich aber doch trotzdem irgendwo die Tabelle angeben, von der gelesen werden soll?!

nein, du musst nichts extra angeben. Es wird die selbe Tabelle genommen, wie auch ohne Lazy-Loading, also die Tabelle, an die du dein Model angeknüpft hast

Und wie knüpfe ich eine Tabelle ans Model?

Indem du in dem Model folgende Property setzt:


/**
  * Object core table name
  *
  * @var string
  */
  protected $_sCoreTable = 'DEIN_TABELLEN_NAME';

Danke! Werde es probieren!

Hat geklappt, danke!