라이브러리
[PHP] EventListener::__construct - 이벤트 기반과 연관된 새 연결 리스너를 생성합니다.
EventListener는 PHP의 SPL(SPL - Standard PHP Library) 패키지에 포함된 인터페이스입니다. 이 인터페이스는 이벤트를 처리하는 클래스를 정의하는 데 사용됩니다.
EventListener 인터페이스는 다음과 같은 메소드를 정의합니다.
- `__construct()`: 클래스의 생성자입니다. 이 메소드는 이벤트를 처리하는 클래스가 초기화될 때 호출됩니다.
- `attach($listener)`: 이벤트 리스너를 등록하는 메소드입니다.
- `detach($listener)`: 이벤트 리스너를 해제하는 메소드입니다.
- `detachAll()`: 모든 이벤트 리스너를 해제하는 메소드입니다.
- `dispatch($event)`: 이벤트를 발생시키는 메소드입니다.
EventListener::__construct() 메소드는 클래스의 생성자입니다. 이 메소드는 이벤트를 처리하는 클래스가 초기화될 때 호출됩니다. 이 메소드는 이벤트를 처리하는 클래스의 초기화 로직을 구현하는 데 사용됩니다.
예제를 통해 EventListener::__construct() 메소드를 이해해 보겠습니다.
#hostingforum.kr
php
// EventListener 인터페이스를 구현하는 클래스
interface EventListener {
public function __construct();
public function attach($listener);
public function detach($listener);
public function detachAll();
public function dispatch($event);
}
// EventListener 인터페이스를 구현하는 클래스
class MyEventListener implements EventListener {
private $listeners = array();
public function __construct() {
// 클래스가 초기화될 때 호출되는 메소드
echo "EventListener::__construct() 메소드가 호출되었습니다.
";
}
public function attach($listener) {
// 이벤트 리스너를 등록하는 메소드
$this->listeners[] = $listener;
}
public function detach($listener) {
// 이벤트 리스너를 해제하는 메소드
$key = array_search($listener, $this->listeners);
if ($key !== false) {
unset($this->listeners[$key]);
}
}
public function detachAll() {
// 모든 이벤트 리스너를 해제하는 메소드
$this->listeners = array();
}
public function dispatch($event) {
// 이벤트를 발생시키는 메소드
foreach ($this->listeners as $listener) {
$listener->handle($event);
}
}
}
// 이벤트 리스너를 구현하는 클래스
class MyEventListener2 {
public function handle($event) {
echo "이벤트가 발생했습니다.
";
}
}
// EventListener::__construct() 메소드를 테스트하는 코드
$listener = new MyEventListener();
$listener2 = new MyEventListener2();
$listener->attach($listener2);
$listener->dispatch("이벤트");
$listener->detach($listener2);
$listener->dispatch("이벤트");
$listener->detachAll();
$listener->dispatch("이벤트");
EventListener::__construct() 메소드는 클래스의 생성자입니다. 이 메소드는 이벤트를 처리하는 클래스가 초기화될 때 호출됩니다. 이 메소드는 이벤트를 처리하는 클래스의 초기화 로직을 구현하는 데 사용됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.