Signatur
Beschreibung
set_include_path() überschreibt den in der php.ini konfigurierten include_path für den laufenden Skript-Request. Alle nachfolgenden Aufrufe von include, require, include_once und require_once suchen Dateien entlang dieses Pfades.
Der Pfad-Trenner ist plattformabhängig: Unter Unix/Linux wird ein Doppelpunkt (:) verwendet, unter Windows ein Semikolon (;). Um plattformübergreifend portablen Code zu schreiben, empfiehlt sich die Verwendung der Konstante PATH_SEPARATOR.
Ein typischer Einsatz ist das Einbinden zusätzlicher Bibliotheks-Verzeichnisse, ohne die globale Serverkonfiguration zu ändern – etwa beim Entwickeln mit Drittanbieter-Bibliotheken oder beim Aufbau eigener Autoloading-Strukturen. Der ursprüngliche Pfad kann vorab mit get_include_path() gesichert und später mit restore_include_path() wiederhergestellt werden.
Mit dem Aufkommen von Composer und PSR-4-Autoloading wird set_include_path() heute seltener benötigt, ist aber in Legacy-Code und bei bestimmten Framework-Integrationen noch weit verbreitet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $include_path Pflicht | string | Der neue Wert für include_path als durch PATH_SEPARATOR (bzw. : oder ;) getrennte Liste von Verzeichnissen. |
Rückgabewert
include_path-Wert als String zurück, sodass er gesichert und später wiederhergestellt werden kann. Bei einem Fehler wird false zurückgegeben.Beispiele
Bibliotheksverzeichnis zum include_path hinzufügen
<?php
// Alten Pfad sichern und neues Verzeichnis vorne anhängen
$oldPath = get_include_path();
set_include_path('/var/www/lib' . PATH_SEPARATOR . $oldPath);
// Datei aus /var/www/lib wird nun gefunden
include 'MyLibrary.php';
// Originalpfad wiederherstellen
set_include_path($oldPath);
Mehrere Verzeichnisse setzen und aktuellen Pfad ausgeben
<?php
$paths = [
'/var/www/app/src',
'/var/www/app/vendor',
'/var/www/app/config',
];
$newPath = implode(PATH_SEPARATOR, $paths);
$previous = set_include_path($newPath);
echo 'Alter Pfad: ' . $previous . PHP_EOL;
echo 'Neuer Pfad: ' . get_include_path() . PHP_EOL;
// Wichtig · Fallstricke
Gültigkeitsbereich: Die Änderung gilt nur für den aktuellen Request bzw. das aktuelle Skript – sie hat keinen Einfluss auf andere Prozesse oder nachfolgende Requests.
Alternative: In modernen PHP-Projekten mit Composer sollte stattdessen der PSR-4-Autoloader genutzt werden. set_include_path() ist insbesondere für ältere Codebasen und PEAR-basierte Bibliotheken relevant.
Fallstrick: Wird der ursprüngliche Pfad nicht gesichert, können nachfolgende Includes fehlschlagen, wenn andere Teile des Codes auf den Standard-include_path angewiesen sind. Es empfiehlt sich daher, den Rückgabewert stets zu speichern.