public function testCreatePropertyBuilder() { $factory = new PHPParser_BuilderFactory(); $this->assertInstanceOf('PHPParser_Builder_Property', $factory->property('test')); }
/** * Return class statement * * @param string $newClassName * @param ReflectionClass $class * * @return \PHPParser_Builder_Class */ private function getClass($newClassName, \ReflectionClass $class) { $parentClass = $class->name; $builder = $this->factory->class($newClassName)->extend($parentClass)->implement('Ray\\Aop\\WeavedInterface')->addStmt($this->factory->property('rayAopIntercept')->makePrivate()->setDefault(true))->addStmt($this->factory->property('rayAopBind')->makePublic()); return $builder; }
/** * @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; }