Derzeit ist die Serviceteil Modell Schicht hält MainService
mit folgenden ZielenVerwendung von Ansichten und Vorlagen
MainService => Communicates with persistence layer,
does the UI logic,
renders the respective view
Die OP von the question here beschreibt die Idee; Sichten sollten die Benutzeroberfläche ausführen und dann die entsprechende Vorlage rendern (abhängig).
Ein Beispiel für MainService
ist ähnlich
echo $this->factory->template()
->file('/path/to/template')
->set('url', 'some/url')
->render();
Es ist klar, dass dies eindeutig mit dem Konzept der Views
widerspricht. Und das ist der Punkt, an dem ich verwirrt bin - die aktuelle Implementierung des Dienstes sieht sehr nach einer Ansicht aus. Ist es eine Aussicht?
Diese Definition scheinen zu verwenden „Service“ für das, was ich einen Controller in Betracht ziehen würde. Wenn Sie sich ansehen, wie einige große "mvc" -Frameworks (symfony, laravel) mvc implementiert haben, leiten Sie eine Anfrage an einen Controller weiter, der die Benutzereingaben übernimmt und tut, was immer er tun sollte, vorzugsweise über Dienste. Und dann eine Ansicht/Vorlage rendern – JimL
Afaik, der Controller in PHP ist meist ein Service, der ein Teil der Modellschicht ist. – sitilge
In den mentionef "mvc" -Implementierungen verwenden sie Dienste wie einen Protokolldienst, Mail-Dienst usw. Beachten Sie, dass ich ständig "mvc" mit Anführungszeichen verwende, da dieses Muster nur bis zu einer bestimmten Ebene implementiert ist. Es scheint nicht in Stein gemeißelt und oft etwas eigensinnig zu sein, wie diese (und andere) Muster umgesetzt werden. Wenn Sie an einer Debatte über die Struktur/das Muster interessiert sind, schlage ich vor, dass Sie bei http://codereview.stackexchange.com/ – JimL