statische Variable in NICHT vererbter Klasse verfügbar machen

T

timroh

Mitglied
Thread Starter
Dabei seit
08.06.2010
Beiträge
44
Reaktionspunkte
1
Hi,
ich habe folgendes Problem. Für ein Projekt, muss ich in einer PHP Klasse mehrere statische Variablen verfügbar machen, die aus verschiedenen Klassen stammen. Um genau zu sein, muss ich einmal eine Language Klasse und einmal eine Definition Klasse, die beide Statische Variablen beinhalten, verfügbar machen. Bisher benutzte ich immer nur eine Klasse mit statischen Variablen (dann einfach die Definitionsklasse vererbt). Jetzt sind es aber zwei und PHP erlaubt ja keine Mehrfachvererbung :(
Habt Ihr eine Idee, das elegant zu lösen?
Vielen Dank
Tim
 
mal sehen ob ich es richtig verstanden habe:

Zunächst sollte man bei OO-Programmierung Vererbung nur im Sonderfall nutzen, das bringt nämlich einige Nachteile mit sich die nicht immer angenehm sind. Das OO-Designpattern mit dem man mehrere Klassen nutzen sollte heißt "Composition over Inheritance" und bedeutet das ich für jede Klasse deren Attribute und Methoden ich nutzen will ein Attribut anlege und so mehrere Klassem in einer zusammenbinde:

class NAME {

protected $languageClass= new LanguageClass();
protected $definitionClass= new DefinnitionClass();

...
}

Dazu dann noch passender Getter/Setter und Du hast beides definiert. Statt static Variablen nehme ich gern Klassen-Konstanten. Damit kann man dann auch leicht ohne Instanziierung auf die Werte Zugreifen:

LanguageClass::DeinWertXY


oder aber innerhalb der Klasse selbst beim Zugriff auf statische Werte:

self::DeinWertXY


EDIT vergessen hab:
addOn: Wo es aber nat. wirklich statische Variable sein müssen geht auch da nat ein Zugriff mit
self::$DeinWertXY
 
Zuletzt bearbeitet:
Zurück
Oben Unten