Start · Sprachen · PHP · Referenz · xmlrpc_server_destroy

xmlrpc_server_destroy

Funktion

Gibt die von einem XML-RPC-Server belegten Ressourcen frei und zerstört das Server-Handle.

seit PHP 4.1.0 Kategorie: xml

Signatur

xmlrpc_server_destroy(resource $server): int

Beschreibung

xmlrpc_server_destroy() gibt alle internen Ressourcen frei, die mit einem durch xmlrpc_server_create() erzeugten XML-RPC-Server-Handle verknüpft sind. Die Funktion sollte aufgerufen werden, sobald der Server nicht mehr benötigt wird, um Speicherlecks zu vermeiden.

In typischen PHP-Skripten werden Ressourcen am Ende des Skripts automatisch freigegeben. Dennoch ist der explizite Aufruf von xmlrpc_server_destroy() empfehlenswert, insbesondere in lang laufenden Prozessen oder Skripten, die viele Server-Objekte erzeugen.

Hinweis: Die gesamte xmlrpc_*-Erweiterung gilt seit PHP 8.0 als veraltet (deprecated) und wurde in PHP 8.4 entfernt. Für neue Projekte sollten alternative Bibliotheken wie phpxmlrpc/phpxmlrpc verwendet werden.

Parameter

Name Typ Default Beschreibung
$server Pflicht resource Das XML-RPC-Server-Handle, das zuvor mit xmlrpc_server_create() erzeugt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt 1 zurück, wenn die Ressource erfolgreich freigegeben wurde, andernfalls 0.

Beispiele

Einfacher XML-RPC-Server mit Ressourcen-Freigabe

<?php
// Server erzeugen
$server = xmlrpc_server_create();

// Eine Methode registrieren
xmlrpc_server_register_method($server, 'greet', function($method, $params) {
    $name = $params[0] ?? 'Welt';
    return 'Hallo, ' . $name . '!';
});

// Eingehende Anfrage verarbeiten
$request = file_get_contents('php://input');
if ($request) {
    $response = xmlrpc_server_call_method($server, $request, null);
    header('Content-Type: text/xml');
    echo $response;
}

// Server-Ressourcen freigeben
$result = xmlrpc_server_destroy($server);
echo $result; // Gibt 1 aus, wenn erfolgreich
1

Mehrere Server erzeugen und wieder freigeben

<?php
$servers = [];

// Mehrere Server-Instanzen erzeugen
for ($i = 0; $i < 3; $i++) {
    $servers[] = xmlrpc_server_create();
}

// Verarbeitung ...

// Alle Server-Ressourcen freigeben
foreach ($servers as $server) {
    $destroyed = xmlrpc_server_destroy($server);
    echo 'Server zerstört: ' . ($destroyed ? 'Ja' : 'Nein') . PHP_EOL;
}
Server zerstört: Ja Server zerstört: Ja Server zerstört: Ja

// Wichtig · Fallstricke

Deprecation: Die xmlrpc_*-Erweiterung wurde in PHP 8.0 als veraltet markiert und in PHP 8.4 vollständig entfernt. Für neue Projekte oder Migrationen empfiehlt sich die Verwendung der Composer-Bibliothek phpxmlrpc/phpxmlrpc.

Nach dem Aufruf von xmlrpc_server_destroy() ist das übergebene Handle ungültig. Ein weiterer Zugriff darauf führt zu einem Fehler. Der Rückgabewert sollte geprüft werden, um sicherzustellen, dass die Freigabe erfolgreich war.