phpbar.de logo

Mailinglisten-Archive

[php] include_path dynamisch setzen

[php] include_path dynamisch setzen

Björn Schotte bjoern at thinkphphq.de
Mit Mar 31 12:00:49 CEST 2004


Hi Ralf,

Ralf Eggert schrieb:
> Ich möchte in meinen Skripten zu Beginn alle notwendigen Klassen laden.

Genau.

>     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.

Eventuell ist dein Applikationsdesign broken.

Ich würde es so machen, dass ich eine local/config.php hätte, die in
einer Konstanten oder ähnliches den Verzeichnispfad der jeweiligen
Installation enthält, der sich von Installation zu Installation
unterscheidet. Diese(n) gebe ich an ini_set('include_path',...);
weiter und das Problem ist gelöst.

Du wirst ja sicherlich auch pro Installation andere DB-Connectionparameter
haben, also bietet es sich an, genau da das Verzeichnis der jeweiligen
Installation zu setzen. Theoretisch könnte man dann auch via

   require_once ABSOLUTE_LOCAL_PATH.'/cls/website.php';

arbeiten, wobei ABSOLUTE_LOCAL_PATH dann mal

   '/www/ich/bin/aufm/liveserver/blaprojekt'

oder

   'c:/irgendwo/bei/mir/daheim'

ist.

Allerdings bevorzuge ich lieber das dynamische Setzen des Include Pfads,
da require_once 'cls/website.php'; wesentlich cleaner ist.

Und wenn du ein local/ Verzeichnis hast, dann wirst du das nur genau
1x auf den Live-Server aufspielen und bei allen folgenden Uploads nicht
mehr.

HTH, Björn.
-- 
ThinkPHP / Mayflower GmbH                   schotte at mayflower.de
Sedanstraße 27                             Tel: 0931 / 78 43 804
97082 Würzburg                             Fax: 0931 / 78 43 795
* http://www.thinkphp.de/ *     http://blog.rent-a-phpwizard.de/


php::bar PHP Wiki   -   Listenarchive