phpbar.de logo

Mailinglisten-Archive

[php] Klassen verschachteln

[php] Klassen verschachteln

Ralf Eggert php_(at)_phpcenter.de
Tue, 17 Jul 2001 17:43:54 +0100


Hi Liste,

ich bin gerade etwas am gruebeln hinsichtlich der Verschachtelung von
einigen Klassen. Habe mir dazu schon den Artikel OOP mit PHP4 - Klassen
in Klassen von Olaf Waltersdorf beim PHP-Center angeschaut, doch hilft
der mir nicht komplett weiter.

Ich habe mehrere verschiedene Klassen, u.a. fuer die MySQL Datenbank,
fuer Templates und Caching, fuer den generellen Seitenaufbau, fuer
Userverwaltung, Forum, Gaestebuch, CMS, etc. Einige der Klassen sind
Basisklassen und werden oefter wieder verwendet, z.B. die DB Klasse
oder die Template Klasse. 

Wenn man nun von einer Klasse auf die Funktionen und Werte einer
anderen Klasse zugreifen moechte, ist es da schlau, die anderen Klassen
innerhalb der Klasse global verfuegbar zu machen? Oder sollte man dies
besser sein lassen? Wenn ja, warum und wieso. 

===========================================================
Beispiel 1:
===========================================================
  class User 
  {
    var $db;
  
    function User
    {
      $this->db = new Database;
    }
  
    function get_user_data()
    {
      $this->db->db_select("SELECT * FROM user_table");

      ...
    }
  }
  
  $user = new User;

===========================================================
Beispiel 2:
===========================================================
  class User 
  {
    function User
    {
      global $db
    }
  
    function get_user_data()
    {
      $db->db_select("SELECT * FROM user_table")

      ...
    }
  }

  $db   = new Database;  
  $user = new User;

===========================================================
Beispiel 3:
===========================================================
  class User 
  {
    var $db;
  
    function User
    {
      $this->db = $GLOBALS[ "db" ];
    }
  
    function get_user_data()
    {
      $this->db->db_select("SELECT * FROM user_table")

      ...
    }
  }

  $db   = new Database;  
  $user = new User;
==================================

Welches der drei Beispiele wuerdet ihr bevorzugen? Bin fuer jede
Anregung dankbar.

Danke und Gruss,

        Ralf

P.S. habe noch nicht alle drei Beispiele ausprobiert, lediglich mit dem
Beispiel 1 etwas herumexperimentiert...
-- 
__________________________________________
 In-Greece.de - die Griechenlandcommunity
_______ http://www.in-greece.de/ _________



php::bar PHP Wiki   -   Listenarchive