ルーティングを見ると、Zend Frameworkで実行するコントローラーの数、さらにはアクションについて、ある種のガイドラインがあります。これを何らかの方法(少なくする)または別の方法(さらに多くする)で変更するために、かなりの数のことを実行できることを覚えておく必要があります。
ルーティングに関するZFの基本的かつ一般的なルールは、コントローラーおよびアクションと一致するリンクパスを持つことです。
www.yourdomain.com/controller/action
ルーティングは、対応するコントローラーにディスパッチし、それとともに名前付きアクションにディスパッチします。この基本的なルールに従うと、見たいパスの数に一致するコントローラーの数になります。
基本的に、Webサイトのすべての機能のルートパスを作成し、最終的には同じ数のコントローラー(1つのアクション)を作成するか、1つのパス内のすべてを組み合わせて1つのコントローラー、ただし同じ数のアクションにすることができます。
最終的には、Webサイトの一般的な機能を1つのパスとコントローラーに結合する必要があります。たとえば、ユーザー管理(サインアップ、プロファイル編集)に関連するすべてのものを/user
パスとUserControllerに結合します。
あなたの例として、ユーザー認証はそれ自身のコントローラーを持たないが、ログインコントローラーまたはそのコントローラーによって使用されるモデルの内部で行われるものだと思います。
アップデート
コントローラとそのアクションはリクエストを解釈し、他のメソッドにのみ委任する必要があります。これらのメソッドを独自のクラスに保持することは有益な場合があります。このメソッドとクラスをどのように構成するかはあなた次第です。Zendの方法は、それらを独自のアプリケーションライブラリに保持することです。たとえば、電子メールの送信は、独自のアプリケーションライブラリ内の別のクラス(Zendクラスの隣および場合によっては拡張)によって保持および実行する必要があります。
連絡先ページがある場合は/contact
、ContactControllerとのリンクがあります。indexActionは、フォームページを表示するためにすべてを委任します。フォーム/contact/submit
には送信ボタンへのリンクを含めることができ、対応するsubmitActionは電子メールライブラリクラスを接続して電子メールを送信します。submitActionは、最終的に_redirect('/submit/thankyou')
またはのようなものを呼び出す場合があります/submit/error
。ご想像のとおり、ありがとうページまたはerrorActionを表示して、エラーが発生したことをユーザーに通知するthankyouActionがあります。