라이브러리

[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() 메소드는 클래스의 생성자입니다. 이 메소드는 이벤트를 처리하는 클래스가 초기화될 때 호출됩니다. 이 메소드는 이벤트를 처리하는 클래스의 초기화 로직을 구현하는 데 사용됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 574 페이지

검색

게시물 검색