1

은 내가PHP는 동적 클래스 상속

echo $obj->foo; //bar 

어떤 경우 기존 클래스에서 $ OBJ 상속을 할 수 있습니다 내가

$obj = (object)array('foo' => 'bar');+ 

이 방법을 실행하여 런타임에 클래스를 생성 할 수 있습니다 알아?

내가 싶어 achive : 내가 GitHub의 (https://github.com/balanza/paris)에 파리 프로젝트를 분기하고있다. 그것은 활동적인 레코드 클래스입니다. 나는 그것이 빈 경우에도, 모든 개체에 대한 클래스를 선언 할 필요가 궁금해 :

class User extends Model{} 

나는이 지루한 물건을 피하기 위해 동적 객체를 사용할 수있는 것 같아요.

+1

그래서 당신이 원하는 그 클래스를 정의하기 위해 "지루한"이기 때문에 클래스에서 확장하는 객체를 생성 할 수있는 완전히 모호한 방법은? 게다가 확장 클래스가 비어있는 경우 $ obj = new Model(); 아니면 "지루한"것인가? – Cfreak

+1

'(객체) array()'는 "런타임에 클래스를 생성"하지 않고 ** 객체 **를 생성합니다. 그것은 중요한 차이입니다. – deceze

답변

0

엄밀히 말하면 내가 볼 수있는 유일한 방법은 Runkit을 사용하는 것입니다. 그러면 다시 클래스를 선언 할 수 있습니다. 그 솔루션이 얼마나 이식성이 있는지 모르겠습니다.

2

항상 eval('class User extends Model{}')을 할 수는 있지만 좋은 생각은 아닙니다. 실제로 파일에 클래스를 생성 한 다음 opcode 캐싱이 제대로 작동하고 버전 추적이 가능해야합니다.

tl; dr : 모델 클래스를 정의하면 바로 수행 할 수 있습니다.