如何记录实现多个接口的类?

时间:2013-09-29 11:46:46

标签: php return-type

让我们说你有一个班级

class View implements ViewInterface, TemplateInterface {

     private $template;

     public function setTemplate($template) {
         $this->template = $template;
         return $this;
     }
}

当您正在记录TemplateInterface时,您来到setTemplate($template)方法,您将其作为返回类型放下什么?

如果我将View作为返回类型,然后我有不同的类实现TemplateInterface不属于View的类型,那么我的API文档就会出错。

您是否放下了ViewViewInterfaceTemplateInterface或其混合类型的返回类型?

namespace Views\Interfaces;

interface TemplateInterface {

    /* --------------------------------- */
       public function getTemplate();
    /* ---------------------------------
     * @args: void
     *
     * @return: String - The name of the template.
    */

    /* ------------------------------------------ */
       public function setTemplate($template);
    /* ------------------------------------------
     * @arg 1: (String $template) - The name of the template file.
     *
     * @return: Not sure yet!!!
    */

}

1 个答案:

答案 0 :(得分:2)

界面应如下所示:

interface TemplateInterface
{
    /**
     * @return TemplateInterface
     */
    public function setTemplate($template);
}

视图类:

class View implements ViewInterface, TemplateInterface {

     private $template;

     /**
      * @return TemplateInterface
      * or (maybe better)
      * @return View (as it implements TemplateInterface and is more specialized)
      */
     public function setTemplate($template) {
         $this->template = $template;
         return $this;
     }
}