/** * Return method statement * * @param \ReflectionMethod $method * * @return \PHPParser_Node_Stmt_ClassMethod */ private function getMethod(\ReflectionMethod $method) { $methodStmt = $this->factory->method($method->name); $params = $method->getParameters(); foreach ($params as $param) { $methodStmt = $this->getMethodStatement($param, $methodStmt); } $methodInsideStatements = $this->getMethodInsideStatement(); $methodStmt->addStmts($methodInsideStatements); $node = $this->addMethodDocComment($methodStmt, $method); return $node; }
public function testCreateMethodBuilder() { $factory = new PHPParser_BuilderFactory(); $this->assertInstanceOf('PHPParser_Builder_Method', $factory->method('test')); }
/** * @param \EBT\ExtensionBuilder\Domain\Model\ClassObject\Method $methodObject * @return \PHPParser_Node_Stmt_ClassMethod */ public function buildMethodNode(\EBT\ExtensionBuilder\Domain\Model\ClassObject\Method $methodObject) { $factory = new \PHPParser_BuilderFactory(); $methodNodeBuilder = $factory->method($methodObject->getName()); $parameters = $methodObject->getParameters(); if (count($parameters) > 0) { foreach ($parameters as $parameter) { $parameterNode = $this->buildParameterNode($parameter); $methodNodeBuilder->addParam($parameterNode); } } $methodNodeBuilder->addStmts($methodObject->getBodyStmts()); $methodNode = $methodNodeBuilder->getNode(); $methodNode->type = $methodObject->getModifiers(); $methodNode->setAttribute('startLine', $methodObject->getStartLine()); $methodNode->setAttribute('endLine', $methodObject->getEndLine()); $methodObject->updateParamTags(); $this->addCommentAttributes($methodObject, $methodNode); return $methodNode; }