PHpullh
학습 라이브러리/PHP/Observer 패턴

PHP · 패턴

Observer 패턴

이벤트 발행과 구독을 분리하는 observer 패턴 예제입니다.

패턴중급observereventlistener

핵심 설명

이벤트 발행과 구독을 분리하는 observer 패턴 예제입니다.

PHP code

<?php
class EventBus {
    private array $listeners = [];

    public function on(string $event, callable $listener): void { $this->listeners[$event][] = $listener; }
    public function emit(string $event, mixed $payload): void {
        foreach ($this->listeners[$event] ?? [] as $listener) {
            $listener($payload);
        }
    }
}

$bus = new EventBus();
$bus->on('user.created', fn (array $user) => print($user['name']));
$bus->emit('user.created', ['name' => 'mida']);

학습 팁

패턴 예제는 클래스 수보다 의존성 방향과 책임 분리를 중심으로 읽는 것이 더 중요합니다.

주의할 점

패턴을 적용하더라도 구현체에 강하게 결합되면 오히려 변경 비용이 커집니다.

자주 묻는 질문

Observer 패턴란 무엇인가요?

이벤트 발행과 구독을 분리하는 observer 패턴 예제입니다.

Observer 패턴 학습 시 주의할 점은 무엇인가요?

패턴을 적용하더라도 구현체에 강하게 결합되면 오히려 변경 비용이 커집니다.

Continue Learning

PHP 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.