diff --git a/src/Builder/ClassBuilder.php b/src/Builder/ClassBuilder.php index 8e716f8..f4107b7 100644 --- a/src/Builder/ClassBuilder.php +++ b/src/Builder/ClassBuilder.php @@ -73,7 +73,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 @@ -148,6 +148,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;