Signatur
Beschreibung
SolrPingResponse ist eine spezialisierte Antwortklasse, die zurückgegeben wird, wenn eine Ping-Anfrage über SolrClient::ping() an einen Solr-Server gesendet wird. Sie erbt von SolrResponse und stellt somit alle Methoden zur Verfügung, um den HTTP-Status, die rohe Antwort sowie das geparste Solr-Dokument auszuwerten.
Typischerweise wird SolrPingResponse eingesetzt, um die Erreichbarkeit und den Betriebszustand eines Solr-Servers zu prüfen, bevor aufwändige Such- oder Indizierungsoperationen durchgeführt werden. Damit eignet sie sich besonders für Health-Checks und Monitoring-Szenarien in produktiven Anwendungen.
Über die geerbte Methode getResponse() lässt sich das geparste Antwortobjekt abrufen, das den Ping-Status enthält. Mit getHttpStatus() kann der HTTP-Statuscode geprüft werden, um sicherzustellen, dass der Server ordnungsgemäß antwortet. Wird eine Ausnahme geworfen oder ein Fehler-Statuscode zurückgegeben, ist der Server nicht erreichbar.
Hinweis: Die Klasse besitzt keinen öffentlichen Konstruktor und wird ausschließlich als Rückgabewert von SolrClient::ping() erzeugt. Eine direkte Instanziierung ist nicht vorgesehen.
Beispiele
Erreichbarkeit des Solr-Servers prüfen
<?php
$options = [
'hostname' => 'localhost',
'port' => 8983,
'path' => '/solr/mycore',
];
$client = new SolrClient($options);
try {
/** @var SolrPingResponse $pingResponse */
$pingResponse = $client->ping();
$httpStatus = $pingResponse->getHttpStatus();
echo 'HTTP-Status: ' . $httpStatus . PHP_EOL;
if ($httpStatus === 200) {
echo 'Solr-Server ist erreichbar und betriebsbereit.' . PHP_EOL;
} else {
echo 'Unerwarteter HTTP-Status: ' . $httpStatus . PHP_EOL;
}
} catch (SolrClientException $e) {
echo 'Solr-Server nicht erreichbar: ' . $e->getMessage() . PHP_EOL;
}
Rohe Serverantwort und Ping-Status auswerten
<?php
$options = [
'hostname' => 'localhost',
'port' => 8983,
'path' => '/solr/mycore',
];
$client = new SolrClient($options);
try {
$pingResponse = $client->ping();
// Rohe XML/JSON-Antwort des Solr-Servers
$rawResponse = $pingResponse->getRawResponse();
echo 'Rohantwort:' . PHP_EOL . $rawResponse . PHP_EOL;
// Geparste Antwort als SolrObject
$response = $pingResponse->getResponse();
if (isset($response->status)) {
echo 'Ping-Status laut Solr: ' . $response->status . PHP_EOL;
}
} catch (SolrClientException $e) {
echo 'Fehler beim Ping: ' . $e->getMessage() . PHP_EOL;
}
// Wichtig · Fallstricke
Keine direkte Instanziierung: SolrPingResponse darf nicht manuell mit new erzeugt werden. Objekte dieser Klasse werden ausschließlich intern von SolrClient::ping() erstellt und zurückgegeben.
Ausnahmebehandlung: Wenn der Solr-Server nicht erreichbar ist oder ein Netzwerkfehler auftritt, wirft SolrClient::ping() eine SolrClientException. Diese sollte stets mit einem try-catch-Block abgefangen werden, um Programmabstürze in Produktivsystemen zu verhindern.
PECL-Abhängigkeit: Die gesamte Solr-Erweiterung ist nicht Teil von PHP-Core und muss über PECL installiert werden (pecl install solr). Die Verfügbarkeit kann mit extension_loaded('solr') geprüft werden.