Signatur
Beschreibung
wincache_ucache_info() gibt ein assoziatives Array mit Informationen über den aktuellen Zustand des WinCache User-Cache zurück. Diese Funktion ist ausschließlich unter Windows verfügbar und setzt die WinCache-Erweiterung voraus.
Im Standardmodus (ohne Parameter) liefert die Funktion eine vollständige Übersicht über alle gecachten Einträge, einschließlich Schlüsselname, Größe, Trefferanzahl, Ablaufzeit sowie allgemeiner Cache-Statistiken wie Gesamtgröße, Anzahl der Einträge, Trefferrate und Fehlerrate. Mit $summaryonly = true werden nur die zusammenfassenden Statistiken zurückgegeben, ohne die Liste der einzelnen Einträge – das ist bei großen Caches deutlich performanter.
Wird ein konkreter $key angegeben, werden nur die Informationen zu diesem einen Eintrag zurückgegeben. Das ist nützlich, um gezielt den Status eines bestimmten Cache-Schlüssels zu prüfen, beispielsweise für Debugging- oder Monitoring-Zwecke.
Die Funktion eignet sich gut für Diagnose-Skripte, Admin-Panels oder Performance-Monitoring-Tools, um den Zustand des User-Caches zu überwachen und Cache-Effizienz zu beurteilen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $summaryonly | bool | false | Wenn true, enthält das Ergebnis nur die zusammenfassenden Cache-Statistiken ohne die Liste der einzelnen gecachten Einträge. Empfehlenswert bei großen Caches, um Overhead zu vermeiden. |
| $key | string | null | Optionaler Schlüsselname. Wenn angegeben, werden nur die Informationen zum Cache-Eintrag mit diesem Schlüssel zurückgegeben. Bei null werden Informationen zu allen Einträgen (bzw. nur die Zusammenfassung, falls $summaryonly = true) zurückgegeben. |
Rückgabewert
ucache_total_count, ucache_total_size, ucache_hit_count, ucache_miss_count, ucache_memory_total, ucache_memory_free sowie das Unter-Array ucache_entries mit Details zu den einzelnen Einträgen. Gibt false zurück, wenn WinCache nicht aktiv ist oder ein Fehler aufgetreten ist.Beispiele
Vollständige Cache-Informationen abrufen
<?php
// Einige Werte in den User-Cache schreiben
wincache_ucache_set('benutzer_1', ['name' => 'Alice', 'rolle' => 'admin'], 3600);
wincache_ucache_set('benutzer_2', ['name' => 'Bob', 'rolle' => 'user'], 3600);
// Alle Cache-Informationen abrufen
$info = wincache_ucache_info();
if ($info !== false) {
echo 'Einträge im Cache: ' . $info['ucache_total_count'] . PHP_EOL;
echo 'Cache-Treffer: ' . $info['ucache_hit_count'] . PHP_EOL;
echo 'Cache-Fehler: ' . $info['ucache_miss_count'] . PHP_EOL;
foreach ($info['ucache_entries'] as $entry) {
echo 'Schlüssel: ' . $entry['key_name']
. ' | Größe: ' . $entry['value_size'] . ' Bytes'
. ' | Treffer: ' . $entry['use_time'] . PHP_EOL;
}
} else {
echo 'WinCache ist nicht verfügbar.';
}
Nur Zusammenfassung und gezielter Schlüssel-Lookup
<?php
wincache_ucache_set('config_db', ['host' => 'localhost', 'port' => 3306], 7200);
// Nur Statistiken, keine Eintrags-Liste (performanter bei großem Cache)
$summary = wincache_ucache_info(true);
if ($summary !== false) {
$gesamtgroesse = round($summary['ucache_total_size'] / 1024, 2);
echo 'Cache-Gesamtgröße: ' . $gesamtgroesse . ' KB' . PHP_EOL;
echo 'Gesamtanzahl Einträge: ' . $summary['ucache_total_count'] . PHP_EOL;
}
// Informationen zu einem bestimmten Schlüssel abrufen
$keyInfo = wincache_ucache_info(false, 'config_db');
if ($keyInfo !== false && !empty($keyInfo['ucache_entries'])) {
$entry = $keyInfo['ucache_entries'][0];
echo 'TTL verbleibend: ' . $entry['ttl_seconds'] . ' Sekunden' . PHP_EOL;
}
// Wichtig · Fallstricke
Plattformbeschränkung: wincache_ucache_info() ist ausschließlich unter Windows verfügbar und erfordert die installierte und aktivierte WinCache-Erweiterung für PHP (IIS). Auf Linux/macOS-Systemen steht die Funktion nicht zur Verfügung.
Sichtbarkeit: Der WinCache User-Cache ist prozess- bzw. sitzungsübergreifend, aber der sichtbare Inhalt hängt von der Konfigurationseinstellung wincache.ucenabled und der Gültigkeitsdauer der Einträge ab. In einer CLI-Umgebung ist der Cache von dem des Webservers getrennt.
Performance: Bei sehr vielen gecachten Einträgen sollte $summaryonly = true bevorzugt werden, um unnötig große Datenmengen zu vermeiden und die Ausführungszeit des Diagnose-Skripts gering zu halten.