diff --git a/src/Utils/BeanDescriptor.php b/src/Utils/BeanDescriptor.php index b66605cf..1eb83e27 100644 --- a/src/Utils/BeanDescriptor.php +++ b/src/Utils/BeanDescriptor.php @@ -1156,9 +1156,10 @@ public function generateResultIteratorPhpCode(): ?FileGenerator $tableName = $this->table->getName(); $className = $this->namingStrategy->getResultIteratorClassName($tableName); + $classFullName = $this->resultIteratorNamespace.'\\'.$className; $baseClassName = $this->namingStrategy->getBaseResultIteratorClassName($tableName); - $beanClassWithoutNameSpace = $this->namingStrategy->getBeanClassName($tableName); - $beanClassName = $this->beanNamespace.'\\'.$beanClassWithoutNameSpace; + $beanClassName = $this->namingStrategy->getBeanClassName($tableName); + $beanClassFullName = $this->beanNamespace.'\\'.$beanClassName; $file->setDocBlock(new DocBlockGenerator( <<addUse(ResultIterator::class); + + $uses = [ResultIterator::class, $classFullName, $beanClassFullName]; + sort($uses); + foreach ($uses as $use) { + $class->addUse($use); + } + $class->setName($baseClassName); $class->setExtendedClass(ResultIterator::class); $class->setDocBlock((new DocBlockGenerator( - "The $baseClassName class will iterate over results of $beanClassWithoutNameSpace class.", + "The $baseClassName class will iterate over results of $beanClassName class.", null, - [new Tag\MethodTag('getIterator', ['\\' . $beanClassName . '[]'])] + [ + new Tag\MethodTag('first', [$beanClassName]), + new Tag\MethodTag('offsetGet', [$beanClassName]), + new Tag\MethodTag('getIterator', [$beanClassName . '[]']), + new Tag\MethodTag('toArray', [$beanClassName . '[]']), + new Tag\MethodTag('withOrder', [$className]), + new Tag\MethodTag('withParameters', [$className]), + ] ))->setWordWrap(false)); $file = $this->codeGeneratorListener->onBaseResultIteratorGenerated($file, $this, $this->configuration);