public function __construct(Traversable $iterator, $classNameModel) { parent::__construct($iterator); $this->classNameModel = $classNameModel; if (!is_subclass_of($classNameModel, Internals\Model::className()) && !in_array(Internals\Model::className(), class_parents($classNameModel))) { throw new ObjectException("{$classNameModel} must be subclass of " . Internals\Model::className()); } }