Cache
Die Cache-Komponente (Brandbox/Cache) implementiert PSR-6 für größtmögliche Interoperabilität. Hinter einer Fasade wird die Cache Component von Symfony verwendet.
Weiterlesen unter https://symfony.com/doc/current/components/cache.html
Der Cache-Provider
Der Cache-Provider ermöglicht die native Nutzung der Symfony Cache-Component und stellt ein einfaches Interface zur Verfügung, mit dem man den Cache validieren/invalidieren kann.
use Brandbox\Framework\Brandbox\Cache;
$cache = Cache\Provider::get();
$callback = function () use ($something) {
return 'cache-value';
};
$cacheKeyArgs = [__METHOD__, '{cache-tag}'];
$lifetime = 86400; // 1 Tag
$namespace = 'brandbox/shop-core';
$result = $cache->remember($cacheKeyArgs, $callback, $lifetime, $namespace);
Folgende Parameter werden in der Methode remember() angeboten:
$cacheKeyArgs
= Dieses Array definiert die eindeutige Kennung dieses Cache-Eintrags.$callback
= Eine Methode, die den zu cachenden Inhalt bereitstellt.$lifetime
= Gibt an wie lange der Cache erhalten bleiben soll$namespace
= Der Name der App in der der Cache aufgebaut wird
Cache-Parameter
Cache-Parameter können genutzt werden, um die $cacheKeyArgs objektorientiert bereitzustellen. Das hat Vorteile bei der Lesbarkeit und beim späteren, automatisierten invalidieren des Caches. Erstellen Sie zu dem Zweck einen Kontext abhängigen Parameter.
declare(strict_types=1);
use Brandbox\Framework\Brandbox\Cache;
class MyParameter extends Cache\Parameter
{
public function __construct(string $tag)
{
$this->setParams([$tag]);
$this->setMethod(__METHOD__);
}
}
Dieser Parameter kann dann wie folgt genutzt werden:
use Brandbox\Framework\Brandbox\Cache;
$parameter = new MyParameter('{cache-tag}');
$result = $cache->remember($parameter->get(), ...);
Laufzeitcache
Die Methode remember() cached auf zwei Arten. Der Lauzeitcache kann dabei exklusiv oder paralell zum Objekt-Cache betrieben werden. Um nur den Laufzeitcache zu nutzen, setzten Sie die Lifetime des Caches auf false. Der Laufzeitcache ermöglicht das Cachen von Inhalten, die nur zur Laufzeit des Requests gecached werden.
PSR-6 Caching
Der Object-Cache ist aktiviert sobald die Lifetime >= 0 ist, wobei 0 für eine unendliche Gültikeit des Caches steht. In brandbox werden standardmäßig folgende Adapter genutzt:
Apcu
Dieser Adapter ist immer aktiviert. Siehe https://symfony.com/doc/current/components/cache/adapters/apcu_adapter.html
Redis
Möchte man den Redis-Cache aktivieren, ist dafür ein laufender Redis-Server notwendig. Aktivieren Sie den dienst wie nachfolgend beschrieben.
Siehe https://symfony.com/doc/current/components/cache/adapters/redis_adapter.html
config.php
Eventübersicht
Klassenname | Beschreibung |
---|---|
OnFlushDataset | Wird |