PHP 스니펫: Property Hooks

발행: (2026년 1월 10일 오전 02:37 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

PHP 8.5의 프로퍼티 훅

PHP 8.5는 프로퍼티 훅을 도입하여, 프로퍼티에 직접 getter와 setter 로직을 붙일 수 있게 했습니다.

class Berry
{
    public string $name {
        get => ucfirst($this->value);
        set => trim($value);
    }
}

$berry = new Berry();
$berry->name = "  strawberry  ";
echo $berry->name; // Strawberry

get 훅은 프로퍼티를 읽을 때 첫 글자를 대문자로 변환하고, set 훅은 프로퍼티에 값을 쓸 때 공백을 제거합니다. 별도의 메서드가 필요 없으며, 로직이 프로퍼티 정의와 가깝게 유지됩니다.

PHP 8.5 이전에 구현하던 방법

프로퍼티 훅이 도입되기 전에는 프라이빗 프로퍼티와 명시적인 getter, setter 메서드를 함께 사용해야 했습니다:

class Berry
{
    private string $name;

    public function getName(): string
    {
        return ucfirst($this->name);
    }

    public function setName(string $value): void
    {
        $this->name = trim($value);
    }
}

$berry = new Berry();
$berry->setName("  blueberry  ");
echo $berry->getName(); // Blueberry

결과는 동일하지만, 코드가 더 장황해지고 변환 로직이 프로퍼티 선언과 분리됩니다.

프로퍼티 훅의 장점

  • 보일러플레이트 감소 – 별도의 getter/setter 메서드가 필요 없습니다.
  • 가독성 향상 – 변환 로직이 프로퍼티가 정의된 바로 그곳에 존재합니다.
  • 유지보수 용이 – 로직 변경을 한 곳에서만 하면 됩니다.
  • 클래스 설계 정리 – 클래스 내 사적인 프로퍼티와 공개 메서드가 적어집니다.

현대 PHP에 오신 것을 환영합니다!

Back to Blog

관련 글

더 보기 »

API Laravel 배우기: 문제에서 솔루션까지!

한 번이라도 겪어본 적 있나요? Frontend React가 Backend Laravel에서 데이터를 가져오지 못했나요? > Postman이 응답 없이 계속 돌아가나요? 안심하세요, 당신만 그런 것이 아닙니다! > 많은 초보자들이 Laravel…