0

私のプロジェクトでは、次のコードを使用して、サービスのセッション バッグを介してセッション変数にアクセスします。

public function __construct()
{
    // Create session bag
    $className = get_class($this);
    $this->storage = new Phalcon\Session\Bag($className);    
}

ただし、これにより、「「セッション」サービスにアクセスするには依存性注入オブジェクトが必要です」という例外が発生します。

わかりました、ここで DI をセットアップする必要があるようです。最も簡単な方法 - DI で共有されていない sessionBag サービスを定義する ($di は自動的に設定されます)。しかし、この方法でセッションバッグに設定する必要がある名前をどのように理解できますか? 例:

$di->set('sessionBag', function() use ($config) {
    $name = ''; // ???
    $bag = new \Phalcon\Session\Bag($name);
    return $bag;
});      
4

2 に答える 2

1

クラスをPhalcon\DI \ Injectableから継承させることができます。永続プロパティにアクセスすると、セッションバッグが暗黙的に作成されます。

class MyComponent extends Phalcon\DI\Injectable
{

    public function someMethod()
    {
        $this->persistent->someName = "peter";
    }

}
于 2013-02-01T18:54:33.903 に答える