public function visitMethod(PhpMethod $method) { if ($docblock = $method->getDocblock()) { $this->writer->writeln($docblock)->rtrim(); } if ($method->isAbstract()) { $this->writer->write('abstract '); } $this->writer->write($method->getVisibility() . ' '); if ($method->isStatic()) { $this->writer->write('static '); } $this->writer->write('function ' . $method->getName() . '('); $this->writeParameters($method->getParameters()); if ($method->isAbstract()) { $this->writer->write(");\n\n"); return; } $this->writer->writeln(")")->writeln('{')->indent()->writeln($method->getBody())->outdent()->rtrim()->write("}\n\n"); }
/** * setMethod() * * @param array|\Zend\CodeGenerator\Php\PhpMethod $method * @return \Zend\CodeGenerator\Php\PhpClass */ public function setMethod($method) { if (is_array($method)) { $method = new PhpMethod($method); $methodName = $method->getName(); } elseif ($method instanceof PhpMethod) { $methodName = $method->getName(); } else { throw new Exception\InvalidArgumentException('setMethod() expects either an array of method options or an instance of Zend\CodeGenerator\Php\Method'); } if (isset($this->_methods[$methodName])) { throw new Exception\InvalidArgumentException('A method by name ' . $methodName . ' already exists in this class.'); } $this->_methods[$methodName] = $method; return $this; }
public function visitMethod(PhpMethod $method) { if ($docblock = $method->getDocblock()) { $this->writer->writeln($docblock)->rtrim(); } if ($method->isAbstract()) { $this->writer->write('abstract '); } $this->writer->write($method->getVisibility() . ' '); if ($method->isStatic()) { $this->writer->write('static '); } $this->writer->write('function '); if ($method->isReferenceReturned()) { $this->writer->write('& '); } $this->writer->write($method->getName() . '('); $this->writeParameters($method->getParameters()); $this->writer->write(")"); if ($method->hasReturnType()) { $type = $method->getReturnType(); $this->writer->write(': '); if (!$method->hasBuiltInReturnType() && '\\' !== $type[0]) { $this->writer->write('\\'); } $this->writer->write($type); } if ($method->isAbstract() || $this->isInterface) { $this->writer->write(";\n\n"); return; } $this->writer->writeln("\n{")->indent()->writeln($method->getBody())->outdent()->rtrim()->write("}\n\n"); }