
ReflectionAttribute::__construct 메서드는 Attribute 클래스를 생성할 때 사용됩니다. 그러나 Attribute 클래스의 생성자에서 인자를 받을 수 없는 이유는 PHP 8.0 버전부터 Attribute 클래스는 final 클래스로 선언되어 있기 때문입니다.
final 클래스는 상속이 불가능하고, 생성자도 오버라이딩이 불가능합니다. 따라서 Attribute 클래스의 생성자는 인자를 받을 수 없습니다.
Attribute 클래스에 인자를 받을 수 있도록 수정하려면 Attribute 클래스를 상속받은 새로운 클래스를 생성하고, 그 클래스의 생성자를 오버라이딩하여 인자를 받을 수 있도록 수정할 수 있습니다.
예를 들어, 다음과 같이 Attribute 클래스를 상속받은 새로운 클래스인 CustomAttribute 클래스를 생성할 수 있습니다.
#hostingforum.kr
php
use Attribute;
final class CustomAttribute extends Attribute
{
public function __construct(private string $value)
{
// 인자를 받을 수 있도록 수정
}
}
이러한 방법으로 Attribute 클래스에 인자를 받을 수 있도록 수정할 수 있습니다.
2025-07-16 10:37