Signatur
Beschreibung
memcache_debug() aktiviert oder deaktiviert die Debug-Ausgabe der Memcache-PECL-Erweiterung. Wenn die Debug-Ausgabe eingeschaltet ist, gibt die Erweiterung zusätzliche Informationen über interne Abläufe, Netzwerkkommunikation und Fehler aus, die bei der Fehlersuche hilfreich sein können.
Die Funktion ist nur wirksam, wenn PHP mit der Compileroption --enable-debug gebaut wurde. In normalen Produktionsumgebungen, in denen PHP ohne Debug-Unterstützung kompiliert wurde, hat der Aufruf keinen Effekt, gibt aber dennoch true zurück.
Der typische Anwendungsfall liegt in der Entwicklungs- und Testphase, wenn man verstehen möchte, welche Befehle tatsächlich an den Memcache-Server gesendet werden oder warum bestimmte Operationen fehlschlagen. In Produktionsumgebungen sollte die Debug-Ausgabe stets deaktiviert bleiben, da sie vertrauliche Daten in der Ausgabe preisgeben kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $on_off Pflicht | bool | true schaltet die Debug-Ausgabe ein, false schaltet sie aus. |
Rückgabewert
true zurück, wenn PHP mit --enable-debug kompiliert wurde, andernfalls false. In einer normalen Produktions-PHP-Installation wird immer false zurückgegeben, da die Debug-Unterstützung nicht aktiviert ist.Beispiele
Debug-Ausgabe aktivieren und Verbindung herstellen
<?php
// Debug-Ausgabe einschalten (nur wirksam bei PHP --enable-debug)
$debugEnabled = memcache_debug(true);
if ($debugEnabled) {
echo "Debug-Modus ist aktiv." . PHP_EOL;
} else {
echo "Debug-Modus nicht verfügbar (PHP ohne --enable-debug kompiliert)." . PHP_EOL;
}
$memcache = new Memcache();
$memcache->connect('127.0.0.1', 11211);
$memcache->set('testkey', 'Testwert', 0, 60);
$value = $memcache->get('testkey');
echo "Wert: " . $value . PHP_EOL;
// Debug-Ausgabe wieder deaktivieren
memcache_debug(false);
$memcache->close();
?>
Prozedurale Nutzung mit memcache_connect
<?php
// Debug vor dem Verbindungsaufbau einschalten
memcache_debug(true);
$connection = memcache_connect('127.0.0.1', 11211);
if (!$connection) {
die('Verbindung zu Memcache fehlgeschlagen.');
}
memcache_set($connection, 'session_user_42', serialize(['name' => 'Max', 'role' => 'admin']), 0, 300);
$data = unserialize(memcache_get($connection, 'session_user_42'));
echo "Benutzer: " . $data['name'] . ", Rolle: " . $data['role'] . PHP_EOL;
// Debug nach Gebrauch wieder deaktivieren
memcache_debug(false);
memcache_close($connection);
?>
// Wichtig · Fallstricke
Achtung: Diese Funktion gehört zur älteren PECL-Erweiterung memcache (nicht zu memcached). Die Erweiterung gilt als veraltet; für neue Projekte wird die Verwendung der memcached-Erweiterung empfohlen.
Sicherheitshinweis: Die Debug-Ausgabe kann Cache-Schlüssel, gespeicherte Werte und interne Kommunikationsdetails preisgeben. Sie darf niemals in Produktionsumgebungen aktiviert werden, da sensible Daten wie Session-Inhalte, Passwörter oder persönliche Nutzerdaten in Logfiles oder der HTTP-Ausgabe erscheinen können.
Da die Funktion nur bei einem speziell kompilierten PHP-Build (--enable-debug) tatsächlich etwas ausgibt, ist ihr Nutzen in der Praxis stark eingeschränkt. Der Rückgabewert kann verwendet werden, um zu prüfen, ob der Debug-Modus tatsächlich aktiv ist.