Signatur
Beschreibung
stream_context_get_params() liest sämtliche intern gespeicherten Parameter eines zuvor erstellten Stream-Kontexts aus. Das Ergebnis umfasst sowohl die über stream_context_create() oder stream_context_set_params() gesetzten Optionen als auch einen etwaigen Notification-Callback und weitere Meta-Parameter.
Die Funktion ist besonders nützlich beim Debuggen: Wenn ein Kontext durch mehrere Schichten einer Applikation weitergereicht oder modifiziert wurde, lässt sich mit einem einzigen Aufruf der aktuelle Zustand vollständig inspizieren. Dabei werden alle Wrapper-spezifischen Optionen (z. B. http, ssl, ftp) gesammelt zurückgegeben.
Im Unterschied zu stream_context_get_options(), das ausschließlich die Optionen liefert, enthält das Ergebnis von stream_context_get_params() zusätzlich den Schlüssel notification, der den registrierten Callback enthält, sowie den Schlüssel options, der die eigentlichen Wrapper-Optionen bündelt.
Die Funktion eignet sich auch dazu, einen Kontext vollständig zu klonen oder seinen Zustand zu serialisieren, bevor er an einen externen Dienst übergeben wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $context Pflicht | resource | Ein gültiger Stream-Kontext, der zuvor mit stream_context_create() erzeugt oder von einer Stream-Funktion zurückgegeben wurde. |
Rückgabewert
notification (der registrierte Callback oder null) und options (ein verschachteltes assoziatives Array aller Wrapper-Optionen, identisch zur Ausgabe von stream_context_get_options()).Beispiele
Vollständige Parameter eines HTTP-Kontexts auslesen
<?php
$callback = function (int $notificationCode, int $severity, ?string $message) {
// Benachrichtigungen verarbeiten
};
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode(['key' => 'value']),
'timeout' => 10,
],
'ssl' => [
'verify_peer' => true,
],
];
$context = stream_context_create($options, ['notification' => $callback]);
$params = stream_context_get_params($context);
echo 'HTTP-Methode: ' . $params['options']['http']['method'] . PHP_EOL;
echo 'SSL verify_peer: ' . ($params['options']['ssl']['verify_peer'] ? 'true' : 'false') . PHP_EOL;
echo 'Notification-Callback gesetzt: ' . (is_callable($params['notification']) ? 'ja' : 'nein') . PHP_EOL;
Kontext-Zustand nach nachträglicher Änderung prüfen
<?php
$context = stream_context_create([
'http' => ['method' => 'GET', 'timeout' => 5],
]);
// Option nachträglich überschreiben
stream_context_set_option($context, 'http', 'timeout', 30);
$params = stream_context_get_params($context);
print_r($params);
// Wichtig · Fallstricke
Unterschied zu stream_context_get_options(): Letztere gibt nur den options-Teil zurück, während stream_context_get_params() das vollständige Parameter-Array inklusive notification liefert. Wenn lediglich Wrapper-Optionen benötigt werden, ist stream_context_get_options() die präzisere Wahl.
Die Funktion gibt eine Kopie der Parameter zurück; Änderungen am zurückgegebenen Array haben keinen Einfluss auf den Kontext selbst. Zum Aktualisieren müssen stream_context_set_option() oder stream_context_set_params() verwendet werden.