ConfigReader vs CachedConfigReader

Hallo, 

kann mir jemand den Unterschied zwischen dem ConfigReader und dem CachedConfigReader nennen?

Anschlussfrage: 
Warum sehe ich häufig bei anderen Plugins, dass im Subscriber im _construct der ConfigReader (nicht CachedConfigReader !) verwendet wird, in der service.xml aber dann aber dennoch als Service der cached_config_reader.

 

Beispiel Ausschnitt Subscriber:

public function __construct($pluginPath, $pluginName, ConfigReader $configReader)
	{
		$this->pluginPath = $pluginPath;
		$this->pluginName = $pluginName;
		$this->configReader = $configReader;

	}

Beispiel Ausschnitt Service.xml

 

ConfigReader ist ein interface. Deswegen steht es im typehint.

Es gibs zwei Implementierung DBAL und Cached. DBAL liest immer live von der DB und der andere wie es der Name auch sagt cacht es.

1 Like

@Shyim‍

Das hatte ich mir soweit gedacht. Sehe aber leider den Sinn dahinter nicht, gecachte Config auszulesen?! Kannst Du mir das kurz erklären?

Du willst ja nicht bei jedem Webrequest die Daten aus der Datenbank laden. Die ändern sich ja erstmal nicht live. Da macht es schon sinn den gecachten zu nehmen, um sich eine Datenbank Abfrage zu sparen. 

1 Like

Okay, also beispielsweise für die an die View übergebenen Einstellungen eines Plugins… Damit diese auch im Cache liegen, richtig?

Genau, eigentlich immer die CachedConfigReader-Variante nutzen, um Datenbank-Abfragen zu sparen, wie Shyim geschrieben hat.

1 Like

perfekt danke!