phpbar.de logo

Mailinglisten-Archive

[php] php4 und phplib

[php] php4 und phplib

Heiko Schubert h.schubert_(at)_tmt.de
Wed, 24 May 2000 17:33:08 +0200


Hallo Mitleser,

ich mache regen Gebrauch von den Funktionen der phplib und wollte das
auch unter php4 ausprobieren. Dabei ist mir etwas aufgefallen - aber der
Reihe nach:

Bisher habe die Projekte auf meinen Servern folgende Struktur:

/www/phplib
...
/www/projekt-name-1/html
/www/projekt-name-1/include
/www/projekt-name-1/sql
/www/projekt-name-1/sql/ddl
...
/www/projekt-name-2/html
/www/projekt-name-2/include
/www/projekt-name-2/sql
/www/projekt-name-2/sql/ddl
...
/www/projekt-?/html ist dabei immer das Document-Root im Apache

Nun will ich jedem Projekt den Zugriff auf die phplib ermöglichen, ohne
diese in der php.ini (bzw. php3.ini) eintragen zu müssen (andere Kunden
haben auch Zugriff auf php). Also habe ich das bisher wie folgt
erledigt:

im include-Verzeichnis eines jeden Projektes befand sich eine Datei
"prepend.php3". Jede *.php3-Seite hatte folgenden Include:

include("../include/prepend.php3"); 

Hiebei verwendete ich die prepend.php3 aus der phplib und erweiteret sie
um ein paar Variablen:

...
// wo ist die phplib?
$_PHPLIB["libdir"] = "/www/phplib/";
...

// hier die Zugangsdaten fuer dieses Projekt
$db_host  = "localhost";
$db_src   = "xxx";
$db_user  = "xxx";
$db_pwd   = "xxx";
...

und so funktionierte es mit php 3.0.x wunderprächtig. Nun installierte
ich php 4.0 und bekam folgenden Fehler:

Fatal error: Failed opening required '/www/phplib/local.inc'
(include_path='') in ../include.php3/prepend.php3 on line 36

Besagte Zeile 36 enthält folgendes:

require($_PHPLIB["libdir"] . "local.inc");

Das Problem liegt aber in meinen Anpassungen der "local.inc":

 class DB_Example extends DB_Sql {
  var $Host     = $db_host;
  var $Database = $db_src;
  var $User     = $db_user;
  var $Password = $db_pwd;
 }

Die Variablen $db_host etc. sind anscheinend nicht mehr bekannt. Denn
setze ich hier die richtigen Werte statt einer Variablen ein, dann
scheint es zu funktionieren (zu mindestens das, was ich auf die Schnelle
getestet habe).

Werden die Variablen bei php4 anders behandelt, oder warum funktioniert
meine alte Variante nicht mehr? Oder liege ich bei meiner "Lösung" evtl.
völlig falsch und hatte bisher einfach nur Glück?

Danke schon einmal für evtl. Tips!

bye,
	heiko


php::bar PHP Wiki   -   Listenarchive