From 77b03a00200e238a0e8cbc25a83e559944cd81e0 Mon Sep 17 00:00:00 2001 From: Sandro Keil Date: Wed, 11 Nov 2020 22:14:15 +0100 Subject: [PATCH] Allow null for class name in ClassBuilder - Close #25 --- src/Builder/ClassBuilder.php | 7 ++++++- src/Code/ClassGenerator.php | 23 +++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Builder/ClassBuilder.php b/src/Builder/ClassBuilder.php index 64647c7..3af7631 100644 --- a/src/Builder/ClassBuilder.php +++ b/src/Builder/ClassBuilder.php @@ -69,7 +69,7 @@ public static function fromNodes(Node ...$nodes): self } public static function fromScratch( - string $className, + ?string $className, string $namespace = null, bool $typed = true, bool $strict = true @@ -137,6 +137,11 @@ public function getNamespace(): ?string return $this->namespace; } + public function setName(?string $name): void + { + $this->name = $name; + } + public function getName(): ?string { return $this->name; diff --git a/src/Code/ClassGenerator.php b/src/Code/ClassGenerator.php index a118876..5a3c3c5 100644 --- a/src/Code/ClassGenerator.php +++ b/src/Code/ClassGenerator.php @@ -10,7 +10,6 @@ namespace OpenCodeModeling\CodeAst\Code; -use PhpParser\Builder; use PhpParser\Node\Stmt\Class_; /** @@ -37,11 +36,11 @@ final class ClassGenerator implements StatementGenerator private $flags = 0; /** - * @param string $name + * @param string|null $name * @param array|string $flags */ public function __construct( - $name, + ?string $name, $flags = null ) { $this->setName($name); @@ -53,19 +52,15 @@ public function __construct( public function generate(): Class_ { - $classBuilder = new Builder\Class_($this->name); - $node = $classBuilder->getNode(); - - $node->flags = $this->flags; - - return $node; + return new Class_( + $this->name, + [ + 'flags' => $this->flags, + ] + ); } - /** - * @param string $name - * @return self - */ - public function setName(string $name): self + public function setName(?string $name): self { $this->name = $name;