私はzfアプリケーション内でセッションを使用する最良の方法を探しています。コントローラでそのセッションがこのように使用された後コントローラーだけでなくアクションヘルパーも使用できますか?
class Vovkin_Controller_Action extends Zend_Controller_Action
{
protected $_session;
public function init()
{
// here I define namespace
// ...
$this->_session = new Zend_Session_Namespace($nameSpace);
parent::init();
}
...
}
:
public function someAction()
{
$this->_session->user = $user;
}
が、私はこれを見つけたコントローラスーパークラスの方法は、私がセッションを初期化のinitに - は、まず私はこのような何かをしました私は他の方法でセッションを初期化しなければならなかったので、プラグイン、サービスなどのシステムの他の部分にはあまり便利ではありませんが、可能ならばそれを1つの場所に保存します。だから私はこのアプローチに変更することを決めたhttps://stackoverflow.com/a/2506447。
今、私は別の名前空間とのセッションへのアクセスを提供するために、いくつかのアクションヘルパーを持っている、それは次のように動作します。
public function someAction()
{
$this->_helper->session()->user = $user;
}
と私は他の部分でのセッション名前空間へのアクセスを得ることができるので、これまでのところ、それは、便利になりますシステムの、例えばサービスでは、このように:
class Vovkin_Model_Service_UserLoginService
{
public function login()
{
$session = Zend_Controller_Action_HelperBroker::getStaticHelper('session')->direct();
...
}
....
}
しかし、どのくらいのアーキテクチャと使用資源の観点から、この方法でそれを使用するのが正しいのか?
ありがとうございました。
私の意見、ちょうど 'Zend_Registry'を使用しています。 –