Mailinglisten-Archive |
Hallo, > > Ich möchte die phplib installieren und muss (wohl) dafür den include-path > > meiner php-installation ändern. Wie stelle ich das an? > > > Indem du wie in der PHPLIB-Doku beschrieben die Datei php.ini editierst und > den Include-path hinzufügst :-) ... würde ich aber nicht machen. Hat man mehre Projekte, mit jeweils unterschiedlichen Datenbanken, wird's schon schwierig. Ich habe das daher etwas anders gelöst: Jedes Projekt hat bei mir folgende Verzeichnisstruktur: /www/<domainenname> sozusagen das Hauptverzeichnis, wofür ich immer ein eigenes Modul auf meinem CVS-Server anlege. /www/<domainenname>/include /www/<domainenname>/phplib /www/<domainenname>/html /www/<domainenname>/html-admin im Include-Verzeichnis liegt immer mindestens eine Datei: ENV.INC <?php class env { var $PHPLIB_DIR; var $db_host; var $db_user; var $db_pass; var $db_database; function env() { $this->db_host = "localhost"; $this->db_user = "<username>"; $this->db_pass = "<passwd>"; $this->db_database = "<dbname>"; $this->PHPLIB_DIR = "/www/<domainenname>/phplib/"; } } ?> Im Verzeichnis phplib (hier ist die komplette phplib (Verzeichnis "stuff") entpackt) habe ich nun noch zwei Anpassungen vorgenommen: 1.) local.inc: class DB_Example extends DB_Sql { var $Host; var $Database; var $User; var $Password; function DB_Example() { $env_local = new env; $this->Host = $env_local->db_host; $this->Database = $env_local->db_database; $this->User = $env_local->db_user; $this->Password = $env_local->db_pass; } } 2.) prepend.php3: ----------------- $env_local = new env; if (!isset($_PHPLIB) or !is_array($_PHPLIB)) { $_PHPLIB["libdir"] = "$env_local->PHPLIB_DIR"; } So weit die Vorbereitungen. Nun kann ich in meinen php-Dateien folgendes einfügen (ein Bsp.): <?php // ************************************************************************ ** require("../include/ENV.INC"); $env_local = new env; require($env_local->PHPLIB_DIR . "prepend.php3"); require($env_local->PHPLIB_DIR . "template.inc"); // create a template object named $t $t = new Template("../include/tpl/guestbook/"); ... Arbeitet man nicht mit den Templates der phplib, braucht man eigentlich nur die drei Zeilen an den Anfang jeder php-Datei zu schreiben: require("../include/ENV.INC"); $env_local = new env; require($env_local->PHPLIB_DIR . "prepend.php3"); Diese Methode hat zwar den Nachteil, daß sich die phplib u.U. recht häufig auf der Festplatte befindet (wenn man viele Projekte verwaltet), man kann aber so jedes Projekt einzeln entwickeln und als Baukasten dann bei anderen Projekten zu einem neuen Gesamtprojekt "schnüren". Aber vielleicht sieht ja jemand einen Denkfehler in meiner Arbeitsweise. Dann würde ich mich über einen entsprechenden Hinweis freuen. Bye, Heiko
php::bar PHP Wiki - Listenarchive