2011-01-20 38 views
2

有沒有方法重新聲明應用新PHPDoc的一種方式,比如我有一個類:PHP和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 2011-01-21 07:33:57