Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Codeblock
languagephp
'cache' => [
    '2nd-lc' => [
        'active' => true,
        'logger' => false,
        'lifetime' => 24 * 60 * 60 // = 24h
    ]
]

Definition im Entity

Das Entity erhält weitere Informationen über den Umgang des Caches mit diesem Entity.

Codeblock
languagephp
use Doctrine\ORM\Mapping\Cache;

/**
 * @Entity
 * @Cache(usage="NONSTRICT_READ_WRITE", region="brandbox/app-xyz")
 * ...
 **/
class Entity ... {
}

Umgang mit unterschiedlichen Datensatz-Arten

Je nach Zweck sollte ein Entity in den Cache oder nicht. Es gibt folgende Möglichkeiten:

Nicht in den Cache

Datensätze die nur einmal geschrieben werden und extrem selten abgerufen werden, gehören nicht in den Cache. Zur Verwendung wird die Cache-Class nicht, wie im obigen Beispiel, in das Entity aufgenommen.
Beispiel: Logs 

...

Wird ein Datensatz verändert (DELETE, INSERT, UPDATE) muss der verändernde Query ein Hint erhalten:

Beispiel
Codeblock
languagephp
themeRDark
titleBeispiel
$qb
  ->delete($class, $identifier)
  ->where($expr->eq($identifier . '.id', ':id'))
  ->setParameter(':id', $id)
  ->getQuery()
  ->setHint(ORM\Query::HINT_CACHE_EVICT, true)
  ->execute()
;

...