示例#1
0
 protected function addProperty(PropertyNode $node)
 {
     foreach ($node->props as $prop) {
         $property = new PropertyReflection($prop->name, $prop->getLine());
         $property->setModifiers($node->type);
         $property->setDefault($prop->default);
         $comment = $this->context->getDocBlockParser()->parse($node->getDocComment(), $this->context, $property);
         $property->setDocComment($node->getDocComment());
         $property->setShortDesc($comment->getShortDesc());
         $property->setLongDesc($comment->getLongDesc());
         if ($errors = $comment->getErrors()) {
             $property->setErrors($errors);
         } else {
             if ($tag = $comment->getTag('var')) {
                 $property->setHint($this->resolveHint($tag[0][0]));
                 $property->setHintDesc($tag[0][1]);
             }
             $property->setTags($comment->getOtherTags());
         }
         if ($this->context->getFilter()->acceptProperty($property)) {
             $this->context->getClass()->addProperty($property);
             if ($errors) {
                 $this->context->addErrors((string) $property, $prop->getLine(), $errors);
             }
         }
     }
 }