Zend_Auth を使用してユーザーを認証し、その詳細をデフォルトの Zend_Auth セッションに保存します。これは、ユーザーが自分の詳細を編集しても、再認証するまでこれらの変更はアプリケーションに反映されないことを意味します。
私はこの問題を回避したい:
- ユーザーがログインすると
user ID
、Zend_Auth
セッションにのみ保存されます リクエストごとに、セッションでのログイン時に保存された を
preDispatch()
使用して、フック内のデータベースからユーザーの詳細をフェッチします。user ID
Zend_Auth
class Plugin_Auth extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($auth->hasIdentity()) { $id = $auth->getIdentity()->id; $userModel = new Model_User(); $user = $userModel->fetchOne($id); // Where do I store this user object ??? } } }
User
問題は、このオブジェクトをどこに保存するかです。セッションの目的はデータを永続化することなので、これにはセッションを使用すべきではないと思います。ただし、リクエストごとにデータベースからデータを再フェッチするため、永続化は必要ありません。のみuser ID
が永続的である必要があります。User
ここでオブジェクトを保存するZend_Registry
オプションはありますか?