具有多种方法的zend视图助手?

2022-08-30 21:56:47
class My_View_Helper_Gender extends Zend_View_Helper_Abstract
{
  public function Gender()
  {
    //
  }
}

"The class method (Gender()) must be named identically to the concliding part 
 of your class name(Gender).Likewise,the helper's file name must be named 
 identically to the method,and include the .php extension(Gender.php)"
 (Easyphp websites J.Gilmore)

我的问题是:视图助手可以包含多个方法吗?我可以从我的帮助者中呼叫其他视图帮助程序吗?

谢谢

卢卡


答案 1

是的,帮助程序可以包含其他方法。要调用它们,您必须掌握帮助程序实例。这可以通过在 View 中获取帮助程序实例来实现

$genderHelper = $this->getHelper('Gender');
echo $genderHelper->otherMethod();

或者让帮助程序从主帮助程序方法返回自身:

class My_View_Helper_Gender extends Zend_View_Helper_Abstract
{
  public function Gender()
  {
    return $this;
  }
  // … more code
}

,然后呼叫$this->gender()->otherMethod()

由于视图帮助程序包含对视图对象的引用,因此您也可以从视图帮助程序中调用任何可用的视图帮助程序,例如

 public function Gender()
 {
     echo $this->view->translate('gender');
     // … more code
 }

答案 2

没有这样的规定,但您可以自定义它。

也许您可以将第一个参数作为函数名称传递并调用它。

例如:

$this->CommonFunction('showGender', $name)

这里 showGender 将是 CommonFunction 类中定义的函数,$name将是参数


推荐