Esempio n. 1
0
 /**
  * class_statement_3
  *    method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body
  */
 protected function class_statement_3($params)
 {
     if (is_array($params[0])) {
         $methodModifiers = $params[0];
     } else {
         $methodModifiers = array($params[0]);
     }
     $isReference = $params[2] ? true : false;
     $methodName = $params[3]->getValue();
     $parameterList = $params[5];
     $methodBody = $params[7] ? $params[7] : null;
     $method = new Stagehand_PHP_Class_Method($methodName);
     $method->setCode($methodBody);
     $lex = $this->getParser()->lex;
     $docComment = $lex->getLatestDocComment();
     if ($docComment) {
         $method->setDocComment($docComment, true);
     }
     if ($isReference) {
         $method->setReference();
     }
     if ($parameterList) {
         foreach ($parameterList as $argument) {
             $method->addArgument($argument);
         }
     }
     $this->_setModifiers($method, $methodModifiers);
     $this->addCurrentMethod($method);
     return parent::execute(__FUNCTION__, $params);
 }
Esempio n. 2
0
    /**
     * @test
     */
    public function useDocComment()
    {
        $name = 'getFoo';
        $docComment = "A tests for DocComment.\n\n@return boolean";
        $formatedDocComment = "/**\n * A tests for DocComment.\n *\n * @return boolean\n */";
        $result = <<<EOF
/**
 * A tests for DocComment.
 *
 * @return boolean
 */
public function getFoo()
{
    return true;
}
EOF;
        $method = new Stagehand_PHP_Class_Method($name);
        $method->setCode('return true;');
        $method->setDocComment($docComment);
        $this->assertEquals($method->getDocComment(), $formatedDocComment);
        $this->assertEquals($method->render(), $result);
        $docComment = "/**\n * A tests for DocComment.\n *\n * @return boolean\n */";
        $method->setDocComment($docComment, true);
        $this->assertEquals($method->getDocComment(), $formatedDocComment);
        $this->assertEquals($method->render(), $result);
    }