Traits und PHP

PHP-Klassen können direkt nur von einer Elternklasse erben.

Tadaa, das ist ungefähr so neu und interessant wie die Wasserstandsmeldung vom letzten Jahr.

Allerdings eines vor Jahren verlassenen Dorfes im hintersten Amazonien.

Traits muss man nicht haben. PHP ist bis jetzt hervorragend ohne sie ausgekommen. Andere Sprachen haben sie aber. Und da die PHP-Szene es sich zum Glück angewöhnt hat, bewährte Konzepte und Techniken aus anderen Sprachen zu übernehmen, sollte man sich damit zumindest mal befasst haben.

Ja, auch ich bin nicht von allein auf dieses Thema gekommen, sondern durch einen netten Hinweis des PHPMagazins, der aber auch schon wieder fast ein Jahr alt ist.

Kurz: Traits ermöglichen Klassen die Nutzung gemeinsamer Methoden, ohne endlose Klassenhierarchien aufbauen zu müssen.
Die SuperBase, Mutter aller Klassen.
Der Vorteil ist, dass die sie nutzenden Klassen eben nichts miteinander zu tun haben müssen. Ob und wann es solche Fälle geben kann und ob das architekturell immer eine gute Sache ist, überlass ich mal der üblichen PHP-Streitkultur. Ich für meinen Teil hätte mir schon mal soetwas gewünscht. Statt dessen hab ich dann eine gewagte Vererbungskette gebaut, für die ich mich heute eher schämen würde.
Schwamm drüber, was interessiert mich der – natürlich unitgetestete ;-) – Code vom letzten Jahr!

Eine ausgesprochen gute Erklärung (in Englisch) zu Traits und einen Lösungsansatz, wie man das in PHP trotzdem umsetzen könnte, liefert dieser Artikel von Steve Hollis.

Das kommende PHP 5.4 hat wohl Traits eingebaut, womit man die obere Lösung dann getrost vergessen kann.

Aber davon mal abgesehen: Ich will multiple inheritance in PHP6! Büddö!

Jürgen Gramenz (12. Januar 2011, 12:36)

,

---

Kommentare

 
---