Signatur
Beschreibung
restore_include_path() setzt den include_path auf den Wert zurück, der in der php.ini (oder einer äquivalenten Serverkonfiguration) definiert ist. Dies ist nützlich, wenn der include_path innerhalb eines Skripts oder einer Funktion temporär mit set_include_path() geändert wurde und anschließend der ursprüngliche Zustand wiederhergestellt werden soll.
Die Funktion entspricht dem Aufruf ini_restore('include_path') und ist lediglich ein praktischer Alias für diesen häufig benötigten Anwendungsfall. Sie wirkt ausschließlich für die Dauer des aktuellen Skripts – ein dauerhaftes Zurücksetzen in der php.ini ist damit nicht möglich.
Typische Einsatzszenarien sind Bibliotheken oder Plugins, die den include_path für eigene Zwecke erweitern und nach ihrer Initialisierung den vorherigen Zustand wiederherstellen möchten, um unerwartete Nebenwirkungen auf das restliche Skript zu vermeiden.
Rückgabewert
Beispiele
Temporäre Änderung des include_path mit anschließender Wiederherstellung
<?php
// Aktuellen include_path speichern und ausgeben
$original = get_include_path();
echo 'Original: ' . $original . PHP_EOL;
// include_path temporär erweitern
set_include_path('/tmp/mylibs' . PATH_SEPARATOR . $original);
echo 'Geändert: ' . get_include_path() . PHP_EOL;
// Eigene Includes hier ausführen ...
// require 'mylib.php';
// include_path wiederherstellen
restore_include_path();
echo 'Wiederhergestellt: ' . get_include_path() . PHP_EOL;
?>
Verwendung in einer Bibliotheks-Initialisierungsfunktion
<?php
function loadLibrary(string $libPath): void
{
// Bibliothekspfad temporär hinzufügen
set_include_path($libPath . PATH_SEPARATOR . get_include_path());
// Bibliotheksdateien laden
require_once 'bootstrap.php';
// include_path sofort wieder zurücksetzen
restore_include_path();
}
loadLibrary('/var/www/vendor/myframework');
// Ab hier gilt wieder der ursprüngliche include_path
echo get_include_path() . PHP_EOL;
?>
// Wichtig · Fallstricke
Deprecation-Hinweis: Ab PHP 8.4 ist restore_include_path() als veraltet markiert. Es wird empfohlen, stattdessen ini_restore('include_path') zu verwenden, das denselben Effekt erzielt und klarer macht, dass es sich um eine allgemeine INI-Wiederherstellung handelt.
Beachte, dass die Funktion den Wert auf den Stand der php.ini zurücksetzt, nicht auf einen zuvor mit get_include_path() gespeicherten Wert. Wenn du mehrere verschachtelte Änderungen rückgängig machen möchtest, speichere den Pfad manuell und verwende set_include_path() mit dem gespeicherten Wert.