2

假设你有一堂课

class View implements ViewInterface, TemplateInterface {

     private $template;

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

然后,当您记录TemplateInterface并且您来到该setTemplate($template)方法时,您将什么作为它的返回类型?

如果我把View它作为返回类型,然后我有不同的类实现TemplateInterface它们不是类型View我的 API 文档将是错误的。

你输入的返回类型是View, ViewInterface,TemplateInterface还是它们的混合?

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!!!
    */

}
4

1 回答 1

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;
     }
}
于 2013-09-29T11:50:58.713 回答