phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] include path

[php] AW: [php] include path

Heiko Schubert heiko_(at)_ghost.tmt.de
Wed, 25 Oct 2000 11:14:57 GMT


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