SPL – Standard PHP Library
Jede Programmiersprache besitzt eine Standard Bibliothek, mit Klassen die standard Probleme lösen. Warum sollte denn z.B jeder Entwickler eine eigene Liste oder ein Set entwickeln müssen. Es gibt Probleme, die einmal gelöst werden und dann nie wieder. Und aus diesem Grund gibt es auch die Standard PHP Library. Nur leider schlittert diese Bibliothek meilenweit in ihrem Ziel vorbei.
Die SPL scheint sich nur um eine Sachen zu kümmern. Dem Iterator Interface und allem was dazugehört. Natürlich ist dies schon ein guter Anfang, aber alleine mit dieser Klasse bleibt es halt nur ein Anfang. Ok jetzt werden viele sagen, dass auch ein Observer Interface beinhaltet ist. Aber auch dieses Interface ist meiner Meinung nach nicht wirklich nützlich, da die Funktionsnamen misslungen sind. Warum sollte eine Funktion add( ) heißen, wenn sie eine Observer hinzufügt. Dies bedeutet ja, dass keine Klasse, die das Observer Pattern implementiert eine Methode besitzen darf, die add( ) heißt. AddObeserver( ) wäre hier wohl die bessere Alternative gewesen. Den Rest der SPL kann man wohl vernachlässigen.
Was mich besonders bei dieser Thematik stört ist, dass die Standarbibliothek einer Sprache, nicht nur eine Hilfsfunktion einnimmt, sondern auch technische Standards setzt. Betrachtet man doch einfach mal den starken Konkurrenten Java. Die wichtigste Grundfunktionalität ist hier bereits abgedeckt. Niemand würde auf die Idee kommen eine File Klasse selbst zu implementieren. Und aus diesem Grund gibt es auch viele weitere Klassen, die die File Interfaces verwenden und somit alle kompatibel sind. In PHP dagegen gibt es hunderte von Klassen, die alle ein anderes Interface, falls überhaupt, besitzen. Keine dieser Klassen sind kompatibel. Nichts ist austauschbar, man kann nicht von den Klassen der anderen profitieren, ohne dabei einen Adapter oder ähnliches zu implementieren.
Moment, aber was ist mit den ganzen Frameworks, die es gibt. Betrachtet man z.B. das Zend Framework, als den derzeit wohl prominentesten Vertreter dieser Gattung, dann wird einem schnell klar, dass diese auf einer anderen Schicht ansetzen, als wie es z.B. Collections oder Streams sind. Frameworks sind sehr hilfreich, keine Frage. Aber wenn sie einem helfen sollen, PHP erwachsener werden zu lassen, dann versagen sie meiner Meinung nach in vielen Punkten.
Ein Kommentar