it-swarm.com.de

Der getList-Cache der Komponente wird nicht geladen / gespeichert

Ich habe eine benutzerdefinierte Komponente erstellt, und ich habe versucht, sie ein bisschen schneller zu machen. Als ich durch die Modellkerndateien gebootet habe, habe ich festgestellt, dass deren getItems() ein Caching verwendet, um DB-Abfragen zu reduzieren:

$store = $this->getStoreId();
if (isset($this->cache[$store]))
{
    return $this->cache[$store];
}

try
{
    // Load the list items and add the items to the internal cache.
    $this->cache[$store] = $this->_getList($this->_getListQuery(), $this->getStart(), $this->getState('list.limit'));
}

Daher versuche ich, dies für meine Komponente zu duplizieren. Code ist praktisch derselbe, aber wenn ich isset($this->cache[$store]) überprüfe, ist er immer nicht gesetzt. Ich bin mir nicht sicher, ob ich Probleme beim Abrufen von $this->cache[$store] Oder beim Speichern habe.

3
Chaosxmk

Überprüfen Sie in Ihrem Komponenten-Controller die Anzeigefunktion:

public function display($cachable = false, $urlparams = false)
{    
    //...

    parent::display($cachable, $safeurlparams);

    return $this;
}

Ändern Sie es in:

parent::display(true, $safeurlparams);

Und nochmal testen.

2
Dennis Heiden