PHP 5.3 Nachtrag 2

Heute (also eben gerade) bin ich noch mal die ToDo-Liste durchgegangen. Dabei fielen mir unter dem Punkt Future Releases ein paar Sachen auf. Ob Future Releases jetzt “Releases ab 5.3″ oder “Releases ab Alpha 2″ heißen soll, ist mir dabei unklar, aber ich hoffe schon sehr, dass damit letzten Endes mindestens die Final, vielleicht aber auch schon ein Release Candidat gemeint ist.

“Introduce concept of “strict classes” that do not permit dynamic property creation” bzw. static classes. Dieser Punkt taucht doppelt in der Liste auf, hat wohl jemand nicht aufgepasst. Dies ist eigentlich nur ein “Konsequenz-Feature”, also nichts, was nicht mit aktuellen Mitteln bereits möglich wäre.

userspace streams filter that acts as a default filter through which require/include read their files” olé :D Erlaubt (als einfacher Fall) virtuelle Dateisysteme, oder streams, die auf Datenbanken zeigen etc. Den Sinn dahinter darf jeder selbst suchen ;)

operator overloading” !!! Ja, sehr wichtig. Wenn es das ist, woran ich denke (PECL/operator oder vergleichbar), dann wird das ein mächtiges Werkzeug. Damit werden Dinge möglich, wie direktes Vergleichen von Objekten (ohne Hilfsmethoden a la compareTo()), aritmethische Operatoren auf Objekte, die dann womöglich nicht unbedingt aritmethisch reagieren, aber hoffentlich im Kontext Sinn ergeben, und Überladung von Zuweisungsoperatoren (ausser der direkten Zuweisung =). Hauptsache es entsteht dadurch kein krampfhaftes “man muss es verwenden, weil es existiert” ;) Man sollte schon nachdenken, wo es Sinn macht.

“real” properties with attached getters and setters” Keine Ahnung, wie das genau gemeint ist, klingt aber vielversprechend.

Letzten Endes natürlich noch Traits. Darf man sich mal durchlesen. Erinnert sehr an Mixins. Wo genau die Unterschiede liegen, darum kümmer ich mich später ;)

Bereits im jetzigen Release enthalten, aber von mir schändlicherweise nicht erwähnt: Die neue magische Methode __invoke(). Damit ausgerüstet wird eine Klasse (genauer: Ein Objekt der Klasse) callable (ob die Funktion is_callable() dies berücksichtigt ist mir nicht bekannt). Sinngemäß wird sie selbst zu einer Art Closure. Wie ich finde eine sehr nützliche Funktion, wenn man eine Klasse schreibt, die eben als Callback/Closure dienen soll, oder einfach so genau eine (!) Hauptaufgabe besitzt. Dadurch vermeidet man sprachliche Merkwürdigkeiten wie Tokenizer::tokenize() und muss sich auch nicht mit eigentlichen unpassenden Bezeichnern wie execute(), perform(), oder gar do() rumärgern, die sich im schlimmsten Fall sogar von Komponente zu Komponente unterscheiden.

Das soll es erstmal wieder gewesen sein :)
Gruß, euer Müsli


Comments

One response to “PHP 5.3 Nachtrag 2”

Leave your response
  1. [...] sich dies über die hauseigene ToDo-Liste erfassen. Als Erstes fiel mir auf, dass einige in einem älteren Beitrag erwähnten features mehr oder weniger stillschweigend verschwunden sind. Um genau zu sein blieb aus [...]

Bad Behavior has blocked 87 access attempts in the last 7 days.