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

PHP · 패턴

Repository 패턴

저장소 접근 방식을 인터페이스 뒤로 숨기는 repository 패턴 예제입니다.

패턴중급repositoryinterfacepersistence

핵심 설명

저장소 접근 방식을 인터페이스 뒤로 숨기는 repository 패턴 예제입니다.

PHP code

<?php
interface UserRepository {
    public function findById(int $id): ?array;
}

class InMemoryUserRepository implements UserRepository {
    public function __construct(private array $rows) {}
    public function findById(int $id): ?array {
        foreach ($this->rows as $row) {
            if ($row['id'] === $id) return $row;
        }
        return null;
    }
}

var_dump((new InMemoryUserRepository([['id' => 1]]))->findById(1));

학습 팁

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

주의할 점

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

자주 묻는 질문

Repository 패턴란 무엇인가요?

저장소 접근 방식을 인터페이스 뒤로 숨기는 repository 패턴 예제입니다.

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

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