Mailinglisten-Archive |
Hallo Björn, Björn Schotte schrieb am 31.03.2004 08:16: > ini_set('include_path','foo:bar'); > > Wo du das hinschreibst, bleibt ja dir überlassen. Vielleicht habe ich mich nicht genau genug ausgedrückt oder ich verstehe immer noch nicht ganz, was du meinst. Ich möchte in meinen Skripten zu Beginn alle notwendigen Klassen laden. Das sieht dann in etwa so aus: require_once("Smarty.class.php"); // load Smarty Template Class require_once("DB.php"); // load PEAR::DB Class require_once("cls/website.php"); // load Website Class Die ersten beiden Klassen liegen immer in den selben Verzeichnissen und werden in meiner globalen php.ini gesetzt. Die dritte Klasse liegt jedoch je nach Projekt in einem anderen Verzeichnis. Momentan habe ich erst drei Projekte auf meinem Entwicklungsrechner, die ich in dieser Form aufgebaut habe. In Zukunft werden es aber mehr werden. Derzeit werden auch alle Include Pfade für jedes dieser Projekte ebenfalls in der globalen php.ini gesetzt. Auf dem Live-Server ist es ganz einfach, da ich dort in den Document Root jedes Projekts eine kurze php.ini lege, die nur die Pfade für Smarty, PEAR und meine Website Klassen setzt. In jedem Document Root liegt also einen andere php.ini Datei. Nun suche ich nach einer Alternative, wie ich den include_path setzen kann, ohne dass ich in meinem Skript vor dem require_once ein ini_set machen muss. Würde ich den ini_set ins Skript setzen, müssten ich jedes Mal beim Upload auf den Server aufpassen und das ini_set ggf. auskommentieren. Meines Wissens nach ist ini_set eine PHP Funktion, die in einem PHP Skript aufgerufen werden muss. Eine Alternative wäre, wenn ich ein Konfigurationsskript schreibe, welches den ini_set und andere Werte setzt. Nur müsste dies am besten auch bei jedem Aufruf des Skriptes geladen werden (auto_prepend_file) oder ich lade es zu Beginn des Skriptes. Da ich aber ein require_once("../_php/cfg/config.php"); vermeiden möchte, stehe ich wieder vor dem gleichen Problem wie bei dem Aufruf der ursprünglichen Website Klasse. Beim auto_prepend_file habe ich das gleiche Problem wie beim include_path, weil ich es nur in meiner globalen php.ini setzen kann. Ich wünsche mir also eine einfache Lösung wie mit der php.ini auf dem Live-Server unter Linux für meinen Entwicklungsrechner unter WinXP mit PHP als CGI Version. Ich hoffe, ich konnte das Problem nun genauer darlegen. Vielleicht ist mein Wunsch auch einfach nur nicht realisierbar und ich muss mit einer anderen Lösung leben, die mir nicht so besonders gefällt. Manchmal verrennt man sich ja auch ganz gerne mal... Gruss, Ralf
php::bar PHP Wiki - Listenarchive