Zendで最初のユーザーログインに取り組んでいますが、Zend_Authと少し混乱しています。私がそれについて読んだすべての記事は、コントローラーで直接それを使用しています。しかし、私にとっては、すべてのコントローラーがこれらの関数を呼び出すことができるように、ユーザーモデルでそれを操作する方が理にかなっています。
皆さんはどう思いますか?
ZendFrameworkのモデルに関するドキュメントはほとんどありません。
Zendで最初のユーザーログインに取り組んでいますが、Zend_Authと少し混乱しています。私がそれについて読んだすべての記事は、コントローラーで直接それを使用しています。しかし、私にとっては、すべてのコントローラーがこれらの関数を呼び出すことができるように、ユーザーモデルでそれを操作する方が理にかなっています。
皆さんはどう思いますか?
ZendFrameworkのモデルに関するドキュメントはほとんどありません。
認証ロジックをユーザークラスに入れることができます。
モデルインフラストラクチャに関するMatthewWeierO'Phinneyのブログ投稿をご覧ください。彼は、カスタムユーザークラスにauthenticate
必要なメソッドを追加する方法を示しています。Zend_Auth_Adapter_Interface
Zend_Auth :: getInstance()はインスタンスを返すので、必要なコントローラーで使用できます。ログインに成功したときにデータを保存して、ユーザーが認証されているかどうかを認証またはテストするためのモデルを必要としないようにしてください。(モデルに認証があると、不要なモデルクラスが必要にならないときにメモリに読み込まれます...、ユーザーが認証されているかどうかのテストはブートストラップに配置する必要があります)
質問に返信するために編集します
単一のコントローラーを作成すると、認証とログアウトのアクションが発生します。これにより、個別の操作を継続できます。ページ上の単純なリンクを使用してloggout関数を呼び出し、$ _SERVER['HTTP_REFERER']にログアウトした後にリダイレクトできます。そのため、ユーザーはログアウトをクリックしたときに表示していたページに戻ることになります。
通常のWebアプリの「model-view-controller」パラダイム(これは終わりがないと主張することができます)では、ビュー/コントローラーセクションにユーザーの個々のエクスペリエンスに関連するコードを含める必要があります。モデルは、データを操作するためだけのものである必要があります。そのデータを変換、保存、取得するためのメソッドと、それを含むメンバーが含まれている必要があります。ビジネスロジック、認証、およびその他のセッション固有の情報に関連するものはすべて、「モデル」から除外する必要があります。