phpbar.de logo

Mailinglisten-Archive

[php] Zugriff auf Methoden in Klasse A von Klasse B aus

[php] Zugriff auf Methoden in Klasse A von Klasse B aus

Sascha Grossenbacher saschagros at bluewin.ch
Mon Dez 11 23:54:48 CET 2006


Daniel Haller wrote:
> Wie stelle ich es nun am besten an, daß ich Methoden meiner
> Datenbankklasse auch in den Methoden meiner Userklasse verwenden kann?
> Bspw. gibt es in der Klasse User eine Methode, um den DB-Eintrag des
> Users zu ändern - dazu brauche ich aber Methoden aus der DB-Klasse. Wie
> komme ich geschicktesten da ran?
>
> Ich hoffe, ihr versteht meine Frage... ;-) Wie würdet ihr das angehen?
> Wie löse ich so eine Situation am elegantesten?
>
>   
Ich habe bei mir eine zentrale Klasse mit lauter statischen Methoden und Attributen. Unter anderem gibt es dort ein statisches Array, in dem ich mit 3 statischen Methoden (register zum Abspeichern, registry zum holen und isRegistered zum prüfen ob es schon registriert ist.) auf Elemente in diesem Array zugreifen kann.

In dieser Klasse bzw. in diesem Array ist alles gespeichert das ich von
verschiedenen Orten aus benötige.. Datenbank-Klasse,
Authenfikations-Klasse,  Konfiguration und noch einiges mehr. Damit kann
ich von überall her darauf zugreifen, ohne immer alles übergeben zu
müssen, oder mit global zu arbeiten. (global ist meiner Meinung nach
schlecht, weil man immer aufpassen muss, unter welcher Variable die
Klassen abgelegt wurden, und das nichts aus Versehen überschrieben wird.

Wird so ähnlich auch bei Frameworks wie Zend[1] und SolarPHP[2] gemacht.

Mit dem &-Zeichen wird eine Variable per Referenz und nicht per Value
übergeben. Bei zweiterem wird das komplette Objekt kopiert, beim ersten
gibt es das Objekt nach wie vor nur einmal. Diese Syntax ist bei PHP5
nicht mehr nötig, da seither Objekte standardmässig per Referenz
übergeben werden, die alte Schreibweise löst jetzt eine E_STRICT-Meldung
aus. Bei Array's und anderen Werten wird es aber nach wie vor benötigt.

Gruss Sascha

[1] http://framework.zend.com/manual/en/zend.register.html
[2] http://solarphp.com/index.php/docs/read/Solar/ApiRef

php::bar PHP Wiki   -   Listenarchive