라이브러리
[PHP] Event::setPriority - 이벤트 우선 순위 설정
PHP 에서 Event::setPriority는 EventDispatcherInterface를 구현한 클래스에서 사용되는 메서드입니다. 이 메서드는 이벤트의 우선순위를 설정하는 데 사용됩니다.
Event::setPriority 메서드
Event::setPriority 메서드는 이벤트의 우선순위를 설정하는 데 사용됩니다. 우선순위는 이벤트가 처리되는 순서를 결정합니다. 우선순위가 높을수록 이벤트가 먼저 처리됩니다.
예제
#hostingforum.kr
php
use SymfonyComponentEventDispatcherEventDispatcher;
use SymfonyComponentEventDispatcherEvent;
class MyEvent extends Event
{
private $message;
public function __construct($message)
{
$this->message = $message;
}
public function getMessage()
{
return $this->message;
}
}
class MyListener
{
public function onMyEvent(MyEvent $event)
{
echo "Listener 1: " . $event->getMessage() . "
";
}
}
class MyListener2
{
public function onMyEvent(MyEvent $event)
{
echo "Listener 2: " . $event->getMessage() . "
";
}
}
$dispatcher = new EventDispatcher();
$listener1 = new MyListener();
$listener2 = new MyListener2();
$dispatcher->addListener('my_event', [$listener1, 'onMyEvent']);
$dispatcher->addListener('my_event', [$listener2, 'onMyEvent']);
$dispatcher->setPriority('my_event', $listener1, 10);
$dispatcher->setPriority('my_event', $listener2, 5);
$dispatcher->dispatch('my_event', new MyEvent('Hello, World!'));
이 예제에서, `MyListener`와 `MyListener2`는 `my_event` 이벤트를 처리하는 데 사용됩니다. `setPriority` 메서드는 `MyListener`의 우선순위를 10으로, `MyListener2`의 우선순위를 5으로 설정합니다. 따라서 `MyListener`가 먼저 처리되고, `MyListener2`가 다음으로 처리됩니다.
결과
#hostingforum.kr
Listener 1: Hello, World!
Listener 2: Hello, World!
참고
* EventDispatcherInterface: [https://api.symfony.com/4.4/Symfony/Component/EventDispatcher/EventDispatcherInterface.html](https://api.symfony.com/4.4/Symfony/Component/EventDispatcher/EventDispatcherInterface.html)
* Event: [https://api.symfony.com/4.4/Symfony/Component/EventDispatcher/Event.html](https://api.symfony.com/4.4/Symfony/Component/EventDispatcher/Event.html)
이 예제는 Symfony의 EventDispatcher를 사용하여 이벤트를 처리하는 방법을 보여줍니다. Event::setPriority 메서드는 이벤트의 우선순위를 설정하는 데 사용됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.