Signatur
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
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
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;
}
// 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.