| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Bewertung: |
| | |
| Neuer Benutzer Registriert seit: 05.03.2011
Beiträge: 16
PHP-Kenntnisse: Fortgeschritten ![]() | Hallo zusammen, ich würde gerne das ORM vorstellen, was ich in der zweiten Hälfte des letzten Jahres entwickelt, dann aus Zeitmangel erstmal auf Eis gelegt und nun doch mal auf Github gepusht habe. ich habe keinen Foren-Bereich gefunden, in das besser rein passen würde. Falls ich hier falsch bin, einfach verschieben. https://github.com/laszlokorte/Dataphant Im Prinzip steht alles wichtige in der Readme Datei (und in der demo.php). Ansonsten ist die Dokumentation leider noch sehr bescheiden. Eines meiner lieblings-Features ist das Smart-Eager-Loading. Damit wird dafür gesorgt, dass die Query-Anzahl nicht exponentiell, sondern linear steigt, wenn man Queries in For-Schleifen schachtelt. An Ruby's Datamapper hat mir das schon sehr gefallen, wobei es dort nur bei einer Verschachtelung von bis zu zwei Schleifen funktioniert hat. Ich habe da noch einiges weitergebastelt, sodass eine beliebige Tiefe an Verschachtelung unterstützt wird. Evtl gefällt es ja jemandem und vielleicht hat ja jemand interesse daran, es weiter zu entwickeln, weiter zu testen, zu dokumentieren oder sonst was mit anzustellen. Pull-Requests sind herzlich willkommen. Ich würde mich auch über Feedback freuen. Falls es interessiert noch etwas zu der Entstehungsgeschichte: Das ganze ist daraus entstanden, dass ich ein ORM in Php brauchte, mich die beien großen Doctrine und Propel aber absolut nicht ansprachen, bzw meine Erwartungen und Anforderungen an die Bequemlichkeit, die nach langem Arbeiten mit Datamapper und ActiveRecord in Ruby recht hoch waren, nicht erfüllten. (Nicht die Design-Patterns, sondern die gleichnamigen Libraries in Ruby) Da ich eigentlich sowieso weg von Php wollte, hatte ich auch nicht lange weitergesucht, sondern schon aufgegeben, dass es überhaupt möglich ist, mit dem in Php zugrundeliegenden Objekt-Modell etwas zu bauen, was dem Ruby Datamapper nahe kommt. Was mich dann geritten hat, weiss ich nicht mehr, allerdings habe ich angefangen die Datamapper-Library in Php nachzubauen. Relativ schnell war einerseits klar, dass ich vieles anders umsetzen musste, weil das statische Klassenmodell von Php einiges, was in Ruby an der Tagesordnung steht, nicht erlaubt. Nachdem irgendwann die ersten Queries funktionierten und sogar einige Features besser funktionierten als im Ruby-Datamapper, hab ich immer weiter und weiter gebastelt, obwohl ich an tausend anderen Stellen immer wieder riesige Kompromisse eingehen musste. Als das ganze dann so gut wie fertig war und sich auch schon richtig gut benutzen liess, hatte ich nicht mehr so viel Zeit weiter zu machen. Die Motivation weiter zu machen ging stetig gegen Null, bis ich das ganze bei Seite legte und eigentlich schon einstampfen wollte. Nun musste ich aber vor ein paar Wochen wieder mit Doctrine arbeiten und da wurde mir klar, wie viel spaßiger es war mit meinem ORM Queries zu bauen und wie nervig es ist DQL-zeug schreiben und sich um den ganzen scheiss wie Query senden, Daten fetchen und so weiter kümmern zu müssen. Daher habe ich mir jetzt doch noch mal ein Herz genommen, mein ORM ein wenig aufgeräumt, ihm den Namen Dataphant verliehen und auf Github gepusht. Geändert von laszlokorte (06.06.2011 um 10:57 Uhr). |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Sieht auf den ersten Blick nicht schlecht aus. Was mich persönlich stört ist die Definition von Daten-Objekten im Code (Attribute, ...) und die vielen statischen Verwendungen. Letzteres ist hinsichtlich der Testbarkeit nicht Vorteilhaft.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| dataphant, smart eager loading, datamapper german validation messages, das orm ist mit mir, doctrine vs propel vs datamapper orm, write php orm, php orm, dataphant demo php, umsetzen von eager loading php, datamapper activerecord |