PHP 스니펫: Property Hooks

발행: (2026년 1월 10일 오전 02:37 GMT+9)
2 min read
원문: 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

관련 글

더 보기 »

PHP 속성: SensitiveParameter

사용하지 않으면 위험이 이미 실시간으로 존재합니다. PHP 8에서 도입된 SensitiveParameter https://www.php.net/manual/en/class.sensitiveparameter.php 속성…