Ich entwerfe meine Anwendung und verwende Doctrine 2 und Zend Framework.
Momentan habe ich alle meine Entitäten geschrieben, ich wollte mit dem Schreiben von Repositories beginnen, und ich dachte über Services nach, und ich frage mich, ob meine Service-Schicht die Repositories nicht wiederholen würde.
Lohnt es sich, eine Service-Schicht zu schreiben, während ich Doctrine 2-Repositories verwende?
Ich lese hier und da aber, dass eine Service-Schicht zum Beispiel für das Caching verwendet werden könnte.
Haben Sie ein Implementierungsbeispiel?
Der Unterschied zwischen Repositories und Diensten besteht darin, dass ich meine Dienste Datenfelder akzeptieren lässt, die aktualisiert, erstellt usw. werden. IIRC, Ein echtes Repository sollte nur mit Domänenobjekten arbeiten. Eine andere Sache, die Sie tun können, ist beispielsweise, dass Sie Ihre Service-Ebene verwenden, um die Erstellung von Thumbnails für Produkte, Profilbilder oder Caching usw. zu handhaben. Der Punkt ist, dass Services nicht eng mit Doctrine-Entitäten verbunden sind.
>Ich benutze immer noch benutzerdefinierte Repositories als Container für alle meine benutzerdefinierten Abfragen und was nicht; die in meinen Serviceklassen und gelegentlich direkt in meinen Controllern konsumiert werden. Obwohl ich meine Dienste zum Serialisieren verwende (für JSON-Antworten).
Es gibt immer noch eine kleine Grauzone mit dem, was wo sein sollte und du musst es nur fühlen. Am Ende des Tages: Wenn Sie die Service-Schicht auslassen und diese Logik in Ihre Repositorys einbauen, wäre es für die Wartung und Skalierbarkeit noch nicht so viel Arbeit, für die Klassenverantwortung weniger Definition.
Tags und Links service design-patterns web-applications doctrine2 zend-framework