Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Wie Objekte/Vars in jeder Klasse verfügbar machen?
Antwort
 
Themen-Optionen
Alt 24.04.2006, 19:29   Nach oben    #1
ex³
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 274
Standard Wie Objekte/Vars in jeder Klasse verfügbar machen?

Nabend miteinander mal eine Frage,

Angenommen ich habe eine DB-, Wiki- und StringTools-Klasse. Dazu kommen einige Config Variablen.
Diese Dinge werden von meinen vielen anderen Klassen benötigt. Wie mach ich das in jeder Klasse verfügbar? Wie stelle ich das am geschicktesten an?

Was ich mal so gedacht hatte
1. Ich könnte eine große Klasse machen die Instanzen und Variablen der benötigten Klassen speichert. Die anderen Klassen erben dann von dieser Superklasse.
2. Ich könnte in jeder anderen Klasse jeweils im Konstruktor Instanzen der benötigten Klassen speichern. Was vielleicht nicht so geschickt ist da man vielleicht ein DB Objekt erst vorkonfigurieren muss (und auch mehr Instanzen des db objekts was vielleicht nicht gut is), was in der Superklasse ja einmalig gemacht werden müsste.
3. Ich erzeuge außerhalb die benötigten Objekte und reiche sie dann in die Konstruktoren der Klassen mit.
4. Ich könnte den alles einfach durchvererben allerdings haben meine Sub-Klassen dann Variablen die ich gar nicht brauch.

Irgendwelche Tips dazu? Ich denke der erste Punkte ist am geeignetsten.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.04.2006, 19:54   Nach oben    #2
mepeisen
Erfahrener Benutzer
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Werf mal deine Gedanken kurz weg. Die erste Möglichkeit ist natürlich, für reine Informationen beispielsweise Konstanten zu nutzen (define und Konsorten). Die zweite gangbare Variante ist in PHP5 die Realisierung über Singletons. Beispiel:
Code:
class Singleton
{
private static $Instance = false;

public static function GetInstance()
{
    if (Singleton::$Instance === false) Singleton::$Instance = new Singleton();
    return Singleton::$Instance;
}

}
Als dritte Option in PHP4 würde ich für diesen einen Zweck den Weg über eine globale Variable gehen, beispielsweise für den Datenbank-Zugriff. Warum? Als erstes finde ich es persönlich besch...., ständig mit Referenzen rumzuhantieren und aufzupasen, wo ich Referenzen vergessen habe und zum zweiten finde ich es unschön, einen Konstruktor aufzublähen und sich hunderte Objekte zu merken, nur weil man sie nirgendwo "richtig" ablegen kann, also nutzt man die einzige Chance in PHP4, nämlich Globale Variablen.

Persönliche Einstellung von mir, kanns ein, dass andere das auch wieder schlecht finden
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klasse verfügbar machen jjelliss PHP-Programmierung 7 09.09.2007 15:36
Klasse in Klasse verwenden? goelliboy PHP-Programmierung 12 07.09.2007 11:43
Thunderbird 1.5.0.7 / Firefox 1.5.0.7 verfügbar Ben Nachrichten 0 14.09.2006 17:10
Wert Varible in Listener anderer Klasse nutzen??? risa Desktop-Applikationen und Grafik 1 03.04.2006 07:36
Design für eine Klasse js-mueller Allgemeine Java-Programmierung 1 12.03.2006 19:23


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:17 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44