Mit Doctrine 2 und Repositories, was wäre der Zweck einer Service-Schicht?

8

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?

    
JohnT 29.04.2011, 21:18
quelle

2 Antworten

10

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.

    
Cobby 30.04.2011 21:16
quelle
4

Ich habe lange nach einem geeigneten Beispiel gesucht (Service-Schicht, Repository mit Doktrin 2 und ZF).
Dieses Beispiel, das ich am besten fand, sollte Ihnen bei Ihrer Arbeit helfen. Ссылка

Eine weitere Sache, Ссылка hilft dabei, den Theorieteil der Serviceebene zu verstehen

    
Nikolai Senkevich 26.05.2011 10:03
quelle