2011-01-20 2 views
2

메소드를 재 선언하지 않고 새로운 PhpDoc을 적용 할 수있는 방법이 있나요? 예를 들어 다음과 같은 클래스가 있습니다.Php with NetBeans : 실제 선언없이 새로운 PhpDoc 적용

class GeneralContainer { 

    private $children; 

    public function __construct() { 
     $this->children = $this->CreateChildren(); 
    } 

    protected function CreateChildren() { 
     return new GeneralChildren($this); 
    } 

    /** 
    * @return GeneralChildren 
    */ 
    public function Children() { 
     return $this->children; 
    } 
} 

"CreateChildren"메소드를 다음과 같이 재정의 한 후 다음과 같이하십시오.

class SpecializedContainer extends GeneralContainer { 

    protected function CreateChildren() { 
     return new SpecializedChildren($this); 
    } 

    /** 
    * @return SpecializedChildren 
    */ 
    public function Children() { 
     return parent::Children() 
    } 
} 

"Children "메서드는"SpecializedChildren "개체를 반환합니다. 그러나 NetBeans에 힌트를주기 위해 필자는 "Children"메서드를 재정의하고 PhpDoc을 사용하여 힌트를 제공해야합니다. NetBeans에 기본 메서드가 실제로 메서드를 재정의하지 않고 다른 형식을 반환한다는 힌트를 줄 수있는 방법이 있습니까?

답변

5

나는 쉬운 방법이 없다고 생각합니다. 그러나 @method 태그를 사용해 볼 수 있습니다.

 /** 
    * @method SpecializedContainer Children() 
    */ 
    class SpecializedContainer extends GeneralContainer { 

     protected function CreateChildren() { 
      return array(); 
     } 

    } 

그 @method 태그가 마법 방법보다는 부모 클래스의 메서드의 새로운 수익 유형에 대해 암시하는 데 사용되어야하지만 당신은 기억해야한다.

+1

이것은 정확히 내가 찾고 있었던 것입니다! 감사! – Lu4