__construct()를 사용하는 것이 더 나은 이유
PHP에서는 매직 메서드(magic method)인 __construct()를 사용하는 것이 클래스 이름으로 된 구식 생성자보다 여러 면에서 유리합니다. 주요 장점은 다음과 같습니다.
- DRY 원칙 준수(Don't Repeat Yourself):
__construct()는 PHP 5부터 도입된 매직 메서드입니다. 클래스 이름을 직접 사용한 생성자와 달리, 클래스의 이름이 변경되더라도 생성자 코드를 수정할 필요가 없습니다. 즉, 코드 중복을 피하고 유지보수성을 높일 수 있습니다. - 부모 클래스 생성자 호출이 간편: 자식 클래스에서
parent::__construct()를 호출하면 부모 클래스의 생성자를 쉽고 명확하게 실행할 수 있습니다.
예제 코드
<?php
class myclass{
public function __construct(){
echo 'The class "', __CLASS__, '" was initiated!'."\n";
}
}
class childclass extends myclass{
public function __construct() {
parent::__construct();
print "In SubClass constructor ";
}
}
$myobj = new childclass();
?>실행 결과
The class "myclass" was initiated! In SubClass constructor
참고: __CLASS__ 매직 상수
위 예제에서 사용된 __CLASS__는 소위 매직 상수(magic constant)라고 불리는 특수 상수입니다. 이 상수는 호출된 위치 기준으로 해당 클래스의 이름을 문자열로 반환합니다.
주의사항: 구식 생성자는 폐기 예정
클래스 이름과 동일한 함수명으로 정의하는 구식(old style) 생성자 방식은 PHP 7.0부터 공식적으로 지원 중단(deprecated)되었으며, 향후 버전에서 완전히 제거될 예정입니다. 따라서 새로운 코드를 작성할 때는 반드시 __construct()를 사용하는 것이 좋습니다.