Start · Sprachen · PHP · Referenz · memcache_debug

memcache_debug

Funktion

Schaltet die Debug-Ausgabe der Memcache-Erweiterung ein oder aus.

seit PHP 2.0.0 Kategorie: db

Signatur

memcache_debug(bool $on_off): bool

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

Typ
bool
Beschreibung
Gibt 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();
?>
Debug-Modus nicht verfügbar (PHP ohne --enable-debug kompiliert). Wert: Testwert

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);
?>
Benutzer: Max, Rolle: admin

// 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.