/** * @param \EBT\ExtensionBuilder\Domain\Model\ClassObject\Property $property * @return \PhpParser\Node\Stmt\Property */ public function buildPropertyNode(\EBT\ExtensionBuilder\Domain\Model\ClassObject\Property $property) { $factory = new \PhpParser\BuilderFactory(); $propertyNodeBuilder = $factory->property($property->getName()); $propertyNode = $propertyNodeBuilder->getNode(); $propertyNode->type = $property->getModifiers(); foreach ($propertyNode->props as $subNode) { if ($subNode instanceof \PhpParser\Node\Stmt\PropertyProperty) { if (!is_null($property->getDefaultValueNode())) { $subNode->default = $property->getDefaultValueNode(); } else { $subNode->default = $this->buildNodeFromValue($property->getDefault()); } } } $this->addCommentAttributes($property, $propertyNode); $propertyNode->default = $property->getDefault(); return $propertyNode; }