私は、サービスレイヤーにいくつかの機能を移す必要があることを知りました。この特定の場合において、それは、zend-paginatorに関するexampleに関する。サービス層はコントローラとモデル(マッパー)の間にありますか?
この例では、サービスレイヤーはコントローラとモデルの中間段階に過ぎません。これはそれが意図された役割であると思われ、certain circumstancesの下ではそれは良い意味があるようです。
しかし、それは私のためにいくつかの質問を提起します。
まず、サンプルサービスコードを実際のペナルティなしでコントローラに簡単に移動することはできません。コードレイヤーを削除してもメリットがありませんか?
コードをサービスレイヤーに移動することに目に見えるメリットがあるとすれば、残りのマッパーのやり取りはどうなりますか?コントローラは、いくつかのタスクのためのサービス層と他のもののマッパーにアクセスするか、サービス層はすべてのマッパー相互作用のプロキシになりますか?
フォームから新しい行を作成するなどのように、サービスレイヤーは値を追加しないため、サービスレイヤーレベルの文字通りパススルー機能になります。
いくつかのタスクでこれを使用すると、後で複雑になるようですが、プロキシとして使用すると意図的にコードの複製と複雑さが導入されるようです。
「ベストプラクティス」に関する明確な説明は非常に役に立ちます。
お返事ありがとうございます。あなたのポストから、おそらくサービス層に含まれるロジックの量とアプリケーションの対話要件によって、サービス層の必要性が決まります。さらに、サービス層がいったん配置されると、すべてのモデルの対話がそれを通過すると仮定する。 正しく理解していますか? – Stryks