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