minstudio

객체 지향 문법 업데이트

👉 6. Constructor Property Promotion

보일러플레이트 코드 제거

생성자 속성 프로모션은 클래스를 정의할 때 발생하는 반복적인 코드를 획기적으로 줄여주는 기능입니다.

생성자 매개변수에 가시성(public, private, protected)을 지정하기만 하면, 속성 선언과 할당이 한 번에 자동으로 처리됩니다. 이로 인해 클래스가 훨씬 짧고 읽기 쉬워집니다.


👉 9. Readonly Properties & Classes

데이터 불변성 보장

Readonly는 한 번 초기화되면 값을 변경할 수 없도록 강제하는 기능입니다. DTO(Data Transfer Object)나 Value Object를 만들 때 매우 유용합니다.

PHP 8.2부터는 클래스 전체를 readonly로 선언할 수 있어, 클래스 내의 모든 속성이 자동으로 불변(immutable) 상태가 되며 예상치 못한 부작용(Side Effect)을 차단합니다.


👉 10. Native Enums

강력한 상태 값 관리

오랫동안 PHP에 없었던 열거형(Enum)이 네이티브로 지원됩니다. 단순한 상수(const) 배열을 넘어, 메서드를 가질 수 있고 인터페이스를 구현할 수 있는 일급 객체입니다.

상태 값, 카테고리 등 고정된 데이터 세트를 타입 안전하게 관리할 수 있어 도메인 로직의 안정성이 크게 향상됩니다.

// 이전 방식
class User {
    private string $name;
    public function __construct(string $name) {
        $this->name = $name;
    }
}

// PHP 8.0 프로모션 적용
class User {
    public function __construct(
        private string $name
    ) {}
}
객체 지향 문법 업데이트 | Minstudio