/** * Create method from function declaration. * * @param FunctionDeclarationNode $function_node * @return ClassMethodNode */ public static function fromFunction(FunctionDeclarationNode $function_node) { $method_name = $function_node->getName()->getText(); $parameters = $function_node->getParameterList()->getText(); $body = $function_node->getBody()->getText(); /** @var ClassNode $class_node */ $class_node = Parser::parseSnippet("class Method {public function {$method_name}({$parameters}) {$body}}"); FormatterFactory::format($class_node); $method_node = $class_node->getStatements()[0]->remove(); return $method_node; }
/** * Determine if the node belongs to this namespace. * * @param ClassNode|InterfaceNode|TraitNode|FunctionDeclarationNode|ConstantDeclarationNode $node * Node to test if owned by namespace. * * @return bool */ public function owns($node) { return $this === $node->getName()->getNamespace(); }