__get()
마법 메서드의 기능을 구현할 수있는 방법이 있는지 알아보고 새 클래스를 인스턴스화하려고합니다.클래스를 인스턴스화하는 것과 동일한 __get 마법 메서드가 있습니까?
내 목표는
$foo = new Cat();
은 궁극적으로 일반 객체의 생성을 초래할 것입니다 즉
new Mammal('Cat');
$foo
클래스 Mammal
의 인스턴스가 될 것 같은 것을
, 호출 된 클래스 이름 ('Cat'
)은 Mammal
의 생성자에 인수로 전달됩니다.
참고 : 는 리튬이나 CakePHP를 잘 알고 사람들을 위해 내가 염두에두고 최종 게임, 각각의 다른 데이터베이스 테이블 클래스의 전체 무리를 정의 할 필요가 없도록하는 것입니다. 만약 내가했다면, 대부분은 비어있을 것이고, 기본적인 CRUD 작업은 모두 필요한 것입니다. 게다가 모든 것을 포함하고 클래스 정의는 오버 헤드에 대해 큰 것이 될 수 없습니다. 내 생각은 단일 "모델"클래스를 사용하여 대부분의 일반 함수를 처리하는 것입니다. 특정 데이터베이스 테이블에 대해 고급 기능이 필요한 경우 항상 하위 클래스를 만들 수 있습니다.
이것은 분명히 효과가 있으며 내 유일한 해결책 일 수 있습니다. 나는 "new Cat();"이라고 쓸 수 있기를 바랬습니다. 가독성을 위해 필수적이지는 않습니다. 그래도 멋질 것입니다 ... –
'TableFactory :: createTable ('Cat');'. 그렇지 않으면 좋은 대답은 공장 패턴이 여기에 사용할 수 있습니다. – Pete