user_logged
という名前のカスタムイベントを作成して、それらのイベントにリスナーを付けることができます。私は、ユーザーがログインしていたときに、いくつかの機能を実行します。symfony2でカスタムイベントを作成する方法
35
A
答えて
65
はSymfony\Component\EventDispatcher\Event
を拡張するクラスを作成します。
その後、イベントを送出するイベントディスパッチャのサービスを使用します。
$eventDispatcher = $container->get('event_dispatcher');
$eventDispatcher->dispatch('custom.event.identifier', $event);
あなたはそうのようなイベントリスナサービスを登録することができます
tags:
- { name: kernel.event_listener, event: custom.event.identifier, method: onCustomEvent }
19
この答えは少しanswerを拡張しています。
services.yml
custom.event.home_page_event:
class: AppBundle\EventSubscriber\HomePageEventSubscriber
tags:
- { name: kernel.event_listener, event: custom.event.home_page_event, method: onCustomEvent }
AppBundle/EventSubscriber/HomePageEventSubscriber.php
namespace AppBundle\EventSubscriber;
class HomePageEventSubscriber
{
public function onCustomEvent($event)
{
var_dump($event->getCode());
}
}
AppBundle /イベント/ HomePageEvent.php
namespace AppBundle\Event;
use Symfony\Component\EventDispatcher\Event;
class HomePageEvent extends Event
{
private $code;
public function setCode($code)
{
$this->code = $code;
}
public function getCode()
{
return $this->code;
}
}
どこでもあなたが自宅で例えば、希望ページコントローラ
use AppBundle\Event\HomePageEvent;
// ...
$eventDispatcher = $this->get('event_dispatcher');
$event = new HomePageEvent();
$event->setCode(200);
$eventDispatcher->dispatch('custom.event.home_page_event', $event);
+0
素晴らしい!非常に役立ちます! – iamjc015
+0
@JCFraneいつでも歓迎! –
関連する問題
- 1. vb.netでカスタムイベントを作成する方法
- 2. jqueryでカスタムイベントを作成する方法
- 3. onDragEnterカスタムイベントを作成する
- 4. Symfony2のDRY方法でルートを作成
- 5. カスタムイベントの作成
- 6. Symfony2で高度なACLを作成する方法は?
- 7. symfony2でcronタスクを作成する方法
- 8. Symfony2のZend preDispatchメソッドの作成方法
- 9. カスタムイベントの作成と送信
- 10. jasmineでカスタムイベントをスパイする方法は?
- 11. Meteor jsでカスタムイベントをトリガーする方法
- 12. symfony2:ログアウトリンクを作成する
- 13. カスタムイベント処理クラスを作成する方法EventArgsと同じように
- 14. プロパティが変更されたときにカスタムイベントを作成する方法は?
- 15. Symfony2でメニューを作成
- 16. Symfony2でダウンロードリンクを作成するには?
- 17. カスタムイベント引数でビューモデルを渡す方法
- 18. カスタムイベントをデータテーブルに追加する方法
- 19. Java - ボタンとマウスでカスタムイベントを作成する
- 20. symfony2で新しい役割を作成して登録する方法
- 21. UIControlEventApplicationReservedを使用してカスタムイベントを作成できますか?
- 22. Symfony2&Doctrine:カスタムSQLクエリを作成する
- 23. Symfony2からバンドルを作成
- 24. Symfony2のは:自動的に私は、私が作成したカスタムイベントを聞きたいディスパッチャ
- 25. Chrome拡張機能でカスタムイベントを作成するための最も慣れた方法
- 26. Symfony2 + Twigでダイナミックチョイスをレンダリングする方法
- 27. httpservice結果イベント内でカスタムイベントをディスパッチする方法
- 28. Androidでカスタムイベントとイベントリスナーを定義する方法は?
- 29. 特定の照合順序でsymfony2でDBを作成する
- 30. C#でDLLからカスタムイベントを生成
さらに、ここに詳細があります:http://symfony.com/doc/current/components/event_dispatcher/introduction.html – gview
確かに、これは始めるには簡単な方法です。 – Lusitanian
優れた答え!今、唯一の質問は、カスタムイベントを派遣するのに最適な場所はどこですか、おそらくサービスですか? – Nico