From d10418673825814264b0a21a86c25e0dc6014d75 Mon Sep 17 00:00:00 2001 From: Daniel Kurowski <daniel.kurowski@grifart.cz> Date: Tue, 1 Jun 2021 09:47:20 +0200 Subject: [PATCH] Transformed Builders into Traversable --- src/Scaffolding/Builders.php | 18 ++++++++---------- src/Scaffolding/Scaffolding.php | 7 +++---- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/Scaffolding/Builders.php b/src/Scaffolding/Builders.php index dcffbd0..439104d 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 08cd2f9..b6a8367 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( -- GitLab