/** * Adds a new method to the class using an array of tokens * * @param ClassReflection $class Class reflection * @param string $methodTag Method tag contents * * @return bool */ protected function injectMethod(ClassReflection $class, $methodTag) { $data = $this->parseMethod($methodTag); // Bail if the method format is invalid if (!$data) { return false; } $method = new MethodReflection($data['name'], $class->getLine()); $method->setDocComment($data['description']); $method->setShortDesc($data['description']); if ($data['hint']) { $method->setHint(array(array($data['hint'], null))); } // Add arguments to the method foreach ($data['args'] as $name => $arg) { $param = new ParameterReflection($name, $class->getLine()); if (!empty($arg['hint'])) { $param->setHint(array(array($arg['hint'], null))); } if (!empty($arg['default'])) { $param->setDefault($arg['default']); } $method->addParameter($param); } $class->addMethod($method); return true; }