최신 PHP는 객체 지향 프로그래밍(OOP)을 더 간결하고 안전하게 작성할 수 있는 기능들을 대거 추가했습니다. 보일러플레이트 코드를 줄여주는 Constructor Property Promotion, 객체의 불변성을 보장하는 Readonly Classes, 그리고 상태 값 관리를 혁신적으로 바꿔줄 Native Enums까지 주요 기능들을 살펴봅니다.
생성자 속성 프로모션은 클래스를 정의할 때 발생하는 반복적인 코드를 획기적으로 줄여주는 기능입니다.
생성자 매개변수에 가시성(public, private, protected)을 지정하기만 하면, 속성 선언과 할당이 한 번에 자동으로 처리됩니다. 이로 인해 클래스가 훨씬 짧고 읽기 쉬워집니다.
Readonly는 한 번 초기화되면 값을 변경할 수 없도록 강제하는 기능입니다. DTO(Data Transfer Object)나 Value Object를 만들 때 매우 유용합니다.
PHP 8.2부터는 클래스 전체를 readonly로 선언할 수 있어, 클래스 내의 모든 속성이 자동으로 불변(immutable) 상태가 되며 예상치 못한 부작용(Side Effect)을 차단합니다.
오랫동안 PHP에 없었던 열거형(Enum)이 네이티브로 지원됩니다. 단순한 상수(const) 배열을 넘어, 메서드를 가질 수 있고 인터페이스를 구현할 수 있는 일급 객체입니다.
상태 값, 카테고리 등 고정된 데이터 세트를 타입 안전하게 관리할 수 있어 도메인 로직의 안정성이 크게 향상됩니다.