From 3536596a6d78ec18efff1c1e9b3515d20a38108e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pudil?= <me@jiripudil.cz> Date: Fri, 3 Dec 2021 15:51:59 +0100 Subject: [PATCH] generate promoted properties --- src/Scaffolding/Scaffolding.php | 6 ++---- src/Scaffolding/TableImplementation.php | 15 ++++----------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/Scaffolding/Scaffolding.php b/src/Scaffolding/Scaffolding.php index 6d971b3..1a8e8bd 100644 --- a/src/Scaffolding/Scaffolding.php +++ b/src/Scaffolding/Scaffolding.php @@ -5,11 +5,10 @@ namespace Grifart\Tables\Scaffolding; use Grifart\ClassScaffolder\Definition\ClassDefinition; use Grifart\Tables\Row; use Grifart\Tables\TypeMapper; +use function Grifart\ClassScaffolder\Capabilities\constructorWithPromotedProperties; use function Grifart\ClassScaffolder\Capabilities\getters; use function Grifart\ClassScaffolder\Capabilities\implementedInterface; -use function Grifart\ClassScaffolder\Capabilities\initializingConstructor; use function Grifart\ClassScaffolder\Capabilities\privatizedConstructor; -use function Grifart\ClassScaffolder\Capabilities\properties; use function Grifart\ClassScaffolder\Definition\Types\nullable; use function Grifart\ClassScaffolder\Definition\Types\resolve; @@ -96,8 +95,7 @@ final class Scaffolding $rowClass = $addTableFields(new ClassDefinition($rowClassName)) ->with( implementedInterface(Row::class), - properties(), - initializingConstructor(), + constructorWithPromotedProperties(), privatizedConstructor(), getters(), new ReconstituteConstructor(), diff --git a/src/Scaffolding/TableImplementation.php b/src/Scaffolding/TableImplementation.php index f84aeb9..40bbf08 100644 --- a/src/Scaffolding/TableImplementation.php +++ b/src/Scaffolding/TableImplementation.php @@ -96,11 +96,6 @@ final class TableImplementation implements Capability // Column references // todo add - use constants? Or references to Column class? - $namespace->addUse(TableManager::class); - $classType->addProperty('tableManager') - ->addComment('@var TableManager') - ->setVisibility('private'); - $classType->addMethod('find') ->setParameters([ (new Code\Parameter('primaryKey')) @@ -238,13 +233,11 @@ final class TableImplementation implements Capability '$this->tableManager->delete($this, $primaryKey);' ); + $namespace->addUse(TableManager::class); $classType->addMethod('__construct') - ->setParameters([ - (new Code\Parameter('tableManager'))->setTypeHint(TableManager::class) - ]) - ->setBody( - '$this->tableManager = $tableManager;' - ); + ->addPromotedParameter('tableManager') + ->setType(TableManager::class) + ->setPrivate(); -- GitLab