diff --git a/src/Scaffolding/Scaffolding.php b/src/Scaffolding/Scaffolding.php index 6d971b3e741f9720dce9c720b84051f341a2fb0a..1a8e8bdc053d204786d93265149488ab84b5b76e 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 f84aeb94b0cf0b72f27d0b6b79edfd0d0baae93e..40bbf08f1ec881d015f94d9ccca45a506ce0b5da 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();