phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?AW:_=5Bphp=5D_OOP_Verst=E4ndnis?=

[php] AW: [php] OOP Verständnis

Mailanbecker php_(at)_phpcenter.de
Wed, 7 Aug 2002 14:45:56 +0200


Servus,

> > Von: 	Mailanbecker[SMTP:mailanbecker_(at)_gmx.net]
> >
> > Ich habe mehrere Klassen, die ich initialisiere.
> > Bsp.:
> >
> > > $Obj->CONF  	= $CONF
> > > $Obj->DB		= new dev_db;
> > > $Obj->USER	= new dev_user;
> > > $Obj->USER	= new dev_login; /* dev_login extends dev_user */
> >
> das funktioniert so nicht.

Hmmm...aber wenn ich mir das so betrachte, ist doch da kein Unterschied zu
deiner Lösung.
Du erstellst eine Variable, in dem Fall "$this", und verbindest so alle.

Und so verknüpfe ich ebenfalls alle. Die Klasse (Funktionen) für die z.B. DB
werden dem Object $Obj->DB zugewiesen und widerum die "CONF" ist unter
$Obj->CONF zu finden. Dadurch sollte das Problem des überschreibens des
alten Eintrags vermieden sein, oder seh ich das falsch?

Thx und Grüße
Tino

>
> Das Object $Obj wird jedes mal mit einer anderen Klasse
> "verbunden", so daß die Methoden und Variablen der vorigen
> Klasse dann nicht mehr zur Verfügung stehen.
> Bei mir fangen Objekte immer mit $o.... an, so daß ich dir
> folgendes ans Herz lege:
>
> $oDb = new dev_db;
> $oUser = new dev_user;
> $oLogin = new dev_login;
>
> Nachteil ist dann, daß du 3 globale Variablen erklären musst.
>
> Geschickter wäre es dann so ähnlich wie du es versucht hast.
>
> class CONF {
>   var $oDb;
>   var $oUser;
>   var $oLogin;
>
>   function CONF() {  # Konstruktor wg. Namensgleichheit mit Klasse!
>     $this->oDb = new dev_db;
>     $this->oUser = new dev_user;
>     $this->oLogin = new dev_login;
>   }
> }
>
>
> Damit rufst du im Hauprogramm dann nur noch das auf:
>
> $oConf = new CONF;  # "CONF"-Klasse und alle enthaltenen instanzieren
>
>
> Die einzelnen Methoden kannst du innerhalb einer Funktion dann wie folgt
> ansprechen:
>
> function tu_was(){
>   global $oConf;
>   $oConf->oDb->connect(); # connect-Methode der Klasse dev_db wird
> aufgerufen
>   ....
> }
>
>
> Grüße, Mathias
> --
> ** http://www.php-center.de **
> Die PHP-Liste: mailto: php_(at)_phpcenter.de
> http://lists.phpcenter.de/mailman/listinfo/php


php::bar PHP Wiki   -   Listenarchive