Wie verwenden von query caching in yii2 ActiveRecord
Ich zitiere die Anleitung:
`Query-caching ist eine spezielle caching-Funktion erstellt über Daten-caching. Es ist vorgesehen, um den cache das Ergebnis von Datenbank-Abfragen.
Query-caching erfordert eine DB-Verbindung und eine gültige cache-application-Komponente. Die grundsätzliche Verwendung von query caching ist wie folgt, vorausgesetzt, $db ist eine yii - \db\Connection-Instanz:
$result = $db->cache(function ($db) {
//the result of the SQL query will be served from the cache
//if query caching is enabled and the query result is found in the cache
return $db->createCommand('SELECT * FROM customer WHERE id=1')->queryOne();
});
`
Ich glaube nicht, dass ich dann manuell erstellen db-Verbindung in AR-Klassen. So wie das in meiner AR-Modelle ?
Habe ich mich gefragt, die gleiche Frage auf yii2 forum, aber ich bekam keine Antwort. Es scheint, dass die Menschen nicht wissen, wie das Zwischenspeichern von Abfragen in Active Record.
InformationsquelleAutor black-room-boy | 2015-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yii 2 nun erfordert Verschlüsse zu wickeln Sie die Abfrage. AR führt eine Abfrage eventuell so können Sie setzen, dass in der Schließung. In einer AR-Klasse, bekommen die db und wickeln Sie die Abfrage, die Sie verwenden möchten. Der Verschluss hat eine Signatur function($db) und müssen Sie in der Regel Zugriff auf mehrere Variablen, so fügen Sie verwenden($variable), um die Variablen sichtbar innerhalb der Schließung.
Wenn Sie schreiben, um die db, die Caches oben, nicht wissen, über Sie, bis die cache-Zeit abgelaufen ist. Also Abhängigkeit sollte Hinzugefügt werden, um die cache-Funktion zu sagen, Wann es den cache ungültig. Abhängigkeit wird kompliziert, schnell...
http://www.yiiframework.com/doc-2.0/yii-caching-dependency.html
InformationsquelleAutor JimHansen
vielleicht helfen: yii2 issues auf github
InformationsquelleAutor TomaszKane