Models im Zend Framework, zum Dritten in 3 Jahren
Traditionen müssen gewahrt werden. Anscheinend ist der September immer der Monat, in dem ich mich intensiver mit dem Thema Models im Zend Framework beschäftige. Bereits vor 3 Jahren und im letzten Jahr habe ich darüber geschrieben, dass das Zend Framework im eigentlichen Sinne noch keine Implementation des Ms vom Model-View-Controller bereit stellt. Das Proposal, das im letzten Jahr noch vielversprechend aussah, ist mittlerweile wieder eingeschlafen. Und auch das Kapitel über Zend_Model wurde bisher immer noch nicht geschrieben. Doch wie ist denn nun der Stand der Dinge?
Über das Thema ist einiges in den Blogs zu lesen. Federico Cargnelutti hat im März eine kleine Serie zum Thema Domain-Driven-Design veröffentlicht und vor einigen Tagen noch das Thema DALs, DAOs und DataMapper aufgegriffen. Wer sich darunter nichts vorstellen kann, lese hier weiter:
- http://blog.fedecarg.com/2009/03/11/domain-driven-design-and-mvc-architectures/
- http://blog.fedecarg.com/2009/03/12/domain-driven-design-and-data-access-strategies/
- http://blog.fedecarg.com/2009/03/15/domain-driven-design-the-repository/
- http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/
- http://blog.fedecarg.com/2009/09/19/zend-framework-dal-daos-and-datamappers/
Padraic Brady schreibt derzeit an seinem Open Book zum Zend Framework und hat auch schon zwei Kapitel zum Thema Models veröffentlicht. Diese sind unbedingt lesenswert:
- http://www.survivethedeepend.com/zendframeworkbook/en/1.0/the.model
- http://www.survivethedeepend.com/zendframeworkbook/en/1.0/implementing.the.domain.model.entries.and.authors
Auch bei Matthew Weier O’Phinney ist eine kleine Artikelserie erschienen, die aber schon einige Monate auf dem Buckel hat. Er schreibt über den Einsatz von Zend_Form und Zend_Acl in einem Model sowie über eine Model Infrastruktur:
- http://weierophinney.net/matthew/archives/200-Using-Zend_Form-in-Your-Models.html
- http://weierophinney.net/matthew/archives/201-Applying-ACLs-to-Models.html
- http://weierophinney.net/matthew/archives/202-Model-Infrastructure.html
Und was ist nun offiziell im Zend Framework im Gange? Nicht wenige würden sich sehr darüber freuen, wenn das Zend Framework mehr Unterstützung zum Thema Models bereit stellen würde. Es gibt dabei zwar viele Ansätze und keinen goldenen Weg, aber dennoch würden Tipps und Anregungen die Arbeit erleichtern. Und dann noch ein paar nützliche und durchdachte Komponenten dazu, dann wäre alles gut. Und was soll ich sagen? Es kommt langsam Bewegung in die Sache, denn derzeit werden von Benjamin Eberlei zwei neue Komponenten vorbereitet: Zend_Entity und Zend_Db_Mapper. Der Proposal klingt sehr spannend und in ähnlicher Form wird dieser Ansatz auch schon im QuickStart des Zend Frameworks eingesetzt. Auch dort gibt es Mapper und Model Klassen sowie Instanzen von Zend_Db_Table.
Es bleibt also spannend.
Freitag, 25.09.2009, um 12:14
Models sind immer wieder Thema, auch bei uns in der Firma, die Meinungen darüber gehen stark auseinander was wirklich in ein Model gehört und was nicht, ehrlich gesagt finde ich es immer am sinnvollsten wenn man für sich selber den best practice weg findet und diesen dann auch geht, ein richtiger für alle geltender Standard wäre natürlich auch nicht schlecht. ;-)
Samstag, 26.09.2009, um 10:48
Federicos Ansatz des Domain-Patterns finde ich für meine Zwecke am besten. So ähnlich nutze ich es auch in meinen ZF-Projekten. Jedes Model abstrahiert ein in sich geschlossenes “Objekt” (wie z.b. einen User) und alle dort wichtigen Methoden. Dazu gibt es eine Collection, wenn z.B. mehrere User abgefragt werden (“Users” liefert ein Array mehrerer User-Objekte) und einen Mapper, der diese Objekte für mich liefert (“liefere mir alle User” oder “gib mir bitte User xx”). Der Mapper nutzt dann ein DAO (bei mir sind das meistens Zend_Db_Table Objekte) um die Daten persistent zu machen.
Benjamins ZF-Proposal ist ja ähnlich angelgt, für mich aber für viele Projekte schon zu komplex. Das dauert mir dann alles beim Erstellen viel zu lange ;-) Ben hat schon recht. Es soll jeder den Weg finden, den er für sinnvoll hält. Die etablierten Design Pattern helfen da, Wege zu finden, die sich bereits als praktikabel herausgestellt haben.
Dienstag, 29.09.2009, um 09:15
[...] Kommentare Zend Framework Blog » Blog Archive » Models im Zend Framework, zum Dritten in 3 Jahren bei Zend_Model – Stand der DingeZend Framework Blog » Blog Archive » Models im [...]