Immer mal wieder zwischen den Phasen des Lernens habe ich mich auch weiter meinem kleinem Projekt Open PHP Library gewidmet. Dabei ist nun auch schon etwas rum gekommen, was viele vielleicht nicht so sehen, weil es sich dabei eher um Grundsätzliches handelt.
Zunächst sind die ersten Wrapper für die primitiven Datentypen (String, Integer, Boolean, Float und Null) entstanden, die es mir jetzt ermöglichen Type Hints direkt in den weiteren Komponenten zu verwenden. Weitere Wrapper sollen folgen, unter Anderem ein Wrapper für Binär- und Hex-Darstellung, zur Zeit geplant auf Basis des String-Wrappers, aber mit Konvertierungsmöglichkeit auf Int. Ebenso auf String-Basis sollen die BigNumber-Klassen entstehen, die Zahlen als String halten und speziell für die Verwendung von PHPs "Mathematische Funktionen beliebiger Genauigkeit" ausgerichtet sind. Die Wrapper bekommen insofern noch Typ-typische Methoden verpasst, wie zB arithmetische Operationen für Zahlen, oder String-Operationen für … naja, Strings ![]()
Teil 2 ist eine Sammlung diverser Interfaces die entweder (aus Kompatibilitätsgründen) Interfaces aus SPL kapseln, oder eigene Strukturen entwerfen. Zur Zeit sind diese allerdings vorwiegend beschreibender Natur, sie beeinflussen das Verhalten der implementieren Objekte nicht (read-only). Weitere Interfaces sollen dann aber auch solche Funktionalitäten vorgeben, die neue Verhaltensmuster zu einer Klasse hinzufügen, unter Anderem in Form abstrakter Datentypen.
Wann es neben den Veröffentlichungen der Revisionen ein Release einer (wenn man es so nennen möchte) 0.1-Version kommen soll, ist bisher noch unklar, weil ich mich dafür bisher auf kein Ziel einigen mochte
Solange darf man mit den Versionen, die eigentlich alle lauffähig, wenn auch ungetestet sind, spielen. Interfaces testen ist eh doof
Dann mal viel Spass.
Gruß,
Müsli
21. Februar 2008 um 13:28 Uhr
Hallo Müsli,
Vielleicht weißt du es nicht, aber mit den Wrappern erfindest du das Rad neu. google mal nach spl_types und installier dir die extension mal. ich finde die eigentlich ganz cool gemacht, auch wenn es (als ich das letzte mal damit in berührung kam, v0.2) mMn noch einige Probleme mit den Namenskonventionen gab. Einerseits gab es nämlich die Datentypen SplInt und SplString, andererseit hieß die Klasse zum kapseln von Floats aber einfach Float.
Eventuell kannst du deine OPL ja darauf aufbauen.
Gruß
Stalker
21. Februar 2008 um 14:18 Uhr
Hallo Stalker. Danke für deinen Beitrag
spl_types ist mir bekannt, allerdings (und das war eine Itention) wollte ich die Library ohne Abhängigkeiten zu Extensions aufbauen, ähnlich wie bei Java, welches seine Bibliothek auch auf sich selbst aufbaut. Viel findet man über spl_types auch nicht, ich kann also auch nicht sagen, wie es jetzt in der 0.3 aussieht.
Einige mögen das als unzureichend empfinden, aber ich selbst arbeite noch ganz schlicht mit webspace, einfach weil ich nicht mehr brauche und ich mir die Arbeit nicht antue einen Server zu pflegen, bloss weil ich bestimmte Extension haben möchte. Ich kenne also das Problem, wenn eine Komponente eine bestimmte Extension vorraussetzt, die ich nicht laden kann. Das verstärkt nebenbei auch die Kompatibilität zu Fremd-Systemen
So habe ich mich entschlossen einzig auf Extensions aufzubauen (wenn überhaupt), die standardmässig verfügbar sind. Vielleicht hilft es, wenn man es nicht als “Rad neu erfinden”, sondern als sowas wie ein Backport betrachtet
Anschauen werd ich es mir trotzdem noch mal, mein Stand ist auch etwas älter. Nebenbei finde ich auch aus PECL die Operators-Erweiterung ganz nett 
Gruß, Müsli