...
Codeblock | ||
---|---|---|
| ||
'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.
Das Cache-Objekt gibt die Caching-Mode an. Siehe https://www.doctrine-project.org/[...]
Es gibt auch die Region an.
Codeblock | ||
---|---|---|
| ||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
$qb ->delete($class, $identifier) ->where($expr->eq($identifier . '.id', ':id')) ->setParameter(':id', $id) ->getQuery() ->setHint(ORM\Query::HINT_CACHE_EVICT, true) ->execute() ; |
...