public function __construct($name, Magic $instance) { if (!$instance instanceof Magic) { throw new ClassException('php class "' . $name . '" is not Magic implemented'); } parent::__construct($name); $this->magicClassName = $instance->getMagicClassName(); $this->magicClassFullName = $instance->getMagicClassFullName(); }