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에 오신 것을 환영합니다!