diff --git a/src/Scaffolding/Builders.php b/src/Scaffolding/Builders.php index dcffbd0112031c8dca88d9dc08fb87ca1ad26bb6..439104dd77cd1623b452e38b20990689f316d9dd 100644 --- a/src/Scaffolding/Builders.php +++ b/src/Scaffolding/Builders.php @@ -6,7 +6,10 @@ use Grifart\ClassScaffolder\Definition\ClassDefinition; use Grifart\ClassScaffolder\Definition\ClassDefinitionBuilder; -final class Builders +/** + * @implements \IteratorAggregate<ClassDefinition> + */ +final class Builders implements \IteratorAggregate { private function __construct( private ClassDefinitionBuilder $rowClass, @@ -43,16 +46,11 @@ final class Builders } - /** - * @return ClassDefinition[] - */ - public function buildAll(): array + public function getIterator(): \Traversable { - return [ - $this->rowClass->build(), - $this->modificationsClass->build(), - $this->tableClass->build(), - ]; + yield $this->rowClass->build(); + yield $this->modificationsClass->build(); + yield $this->tableClass->build(); } } diff --git a/src/Scaffolding/Scaffolding.php b/src/Scaffolding/Scaffolding.php index 08cd2f9fba2b765cd08ad4f763d4fdcb82d4d6ae..b6a83674df17b75ecd47791ce71bfa89988719f4 100644 --- a/src/Scaffolding/Scaffolding.php +++ b/src/Scaffolding/Scaffolding.php @@ -27,7 +27,6 @@ final class Scaffolding * ```php * return Scaffolding::definitionsForPgTable(...); * ``` - * @return ClassDefinition[] */ public static function definitionsForPgTable( PostgresReflector $pgReflector, @@ -38,7 +37,7 @@ final class Scaffolding string $modificationsClassName, string $tableClassName, string $primaryKeyClass - ): array + ): Builders { return self::buildersForPgTable( $pgReflector, @@ -49,7 +48,7 @@ final class Scaffolding $modificationsClassName, $tableClassName, $primaryKeyClass, - )->buildAll(); + ); } @@ -58,7 +57,7 @@ final class Scaffolding * ```php * $builders = Scaffolding::buildersForPgTable(...); * $builders->getRowClass()->decorate(...); - * return $builders->buildAll(); + * return $builders; * ``` */ public static function buildersForPgTable(