4

Symfony2リスナー(Symfony v。2.0.16)でセッションのデータを設定しようとしていますが、どういうわけかリスナーはセッション変数を登録しません。

私は次のものを持っています:

私のservices.ymlエントリ:

kernel.listener.domain_listener:
 class: Etiam\ClubWebBundle\Listener\SubdomainListener
 arguments: [@service_container]    
 tags:
  - { name: kernel.event_listener, event: kernel.request, method: onDomainParse }

そして、これが私のリスナーです:

namespace Etiam\ClubWebBundle\Listener;

use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\Event;

class SubdomainListener {

 private $container;

 public function __construct($container)
 {
     $this->container = $container;
 }


 public function onDomainParse(Event $event) {
  $session = $this->container->get('session');
  $session->set('siteData', '123');
  $session->save();
 }

}

リスナーにアクセスしているときにセッションデータが保存されない理由を誰かに教えてもらえますか?

4

1 に答える 1

6

さて、私はそれを理解しました。

誰かがリスナーと似たようなものに出くわした場合、あなたは物事を変えていて何も起こりません:

複数のバンドルがある場合は、2つの同一のリスナーがあり、間違ったリスナーを編集している可能性があります。リスナーは明らかにグローバルであり、複数のバンドルで有効であるために必要なのは1つだけです。

ロードされたリスナーは、プロファイラーのイベントの下に表示されます。

于 2013-01-04T13:16:09.357 に答える