1

ZendFrameworkでのセッション処理についてお聞きしたいと思います。セッション処理にZend_Session_Namespaceを使用しています。私の質問は、これを効率的な方法でどのように実装する必要があるかということです。この時点で、コントローラーのすべてのアクションのセッションチェックがあります。

たとえばレイアウトファイルでセッション処理をどのように処理する必要がありますか。これは、現在の方法(sessionExists()を使用してすべてのアクションをチェックインし、userIdが設定されているかどうかをチェックする)が非常に非効率的で反復的であるためです。

すべてのサポートに感謝します!:)

PS何か助けがあれば、コントローラーでセッションチェックに使用する関数は次のとおりです。

 private function checkSession()
        {
            $session = new Zend_Session_Namespace("userSession");
            if(Zend_Session::sessionExists() && $session->__isset("userId"))
            {
            return true;    
            }
        else
        {
            return false;
        }
    }
4

1 に答える 1

1

Joellordが投稿したリンクが役立つはずです。すべてのリクエストで何かを実行する必要がある場合は、コントローラープラグインの使用を検討する必要があります。ドキュメントは開始するのに適した場所です。

認証システムを実装する場合、このコードはユーザーがログインしているかどうかを示します。

$ auth = Zend_Auth :: getInstance();
if($ auth-> hasIdentity()){//何かをする...

また、ユーザーオブジェクト、その役割/権限などを提供するように拡張することもできます。

Matthew Weier O'Phinneyによるこの記事は、Zend_Authを使用した基本認証について学ぶための素晴らしいリソースです。

于 2012-08-01T16:53:48.713 に答える