moin,
Das ist natürlich wirklich sehr kurz, aber damit erkaufst du dir auch ein paar Nachteile:
Ich wollte mit einer Klasse einen Pseudo Datentyp erstellen und das wie gefordert von einer anderen Klassen im Konstruktor mit HintType und Interfaces einbringen. So erspart man sich verfälschungen und ich komm damit sehr gut klar. Klar kann man das So machen
new DB(
Cfg::getDNS(),
Cfg::getUser(),
Cfg::getPWD(),
Cfg::getChar()
);
Nach dieser lösung muss man dann aber auch über umwege arbeiten können. viel simpler ist es so new DB( new TypDB );
und da muss man nur ein Property aufrufen $this->TypeDB->char
oder $this->TypeDB->dns
und drauf zugreifen und keine Methode aufrufen in etwa so $this->TypeDB->getChar()
natürlich mit ausnahme der Interzeptor Method __set()
. Das finde ich persönlich unpassend und meine lösung eleganter.
Oder, du benutzt PHPDoc-Annotationen, damit wird der Code sogar noch kürzer als deine ursprüngliche Fassung und viele Programme können damit umgehen:
Ich hab erwähnt das ich öffentliche Methoden die verändert werden können nicht mag. Ich kenn mich, ich renn dann kopflos in irgendwas rein.
lgmb