Zend Framework在View帮助器中使用多个方法

时间:2013-04-17 02:40:47

标签: zend-framework view methods helper

我想知道是否可以将多功能与View Helper一起使用?假设我有这个视图助手:

class Zend_View_Helper_Time extends Zend_View_Helper_Abstract {

    public function time($date) {
        // Some code here
    }
}

在我看来,我会像那样使用它:

$this->time($some_date);

但是,如果我想要的话,在同一个帮助器中可以调用另一个方法,如:

$this->Time->convertMyDate($some_date);

我试图这样做,但不幸的是我有一个错误。我们锁定只在类名后使用方法名吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我这样做,只需在构造函数中返回$ this:

public function time() {
     return $this;
}

public function convertMyDate($some_date) {
    ...
}

然后:

$this->time()->convertMyDate();

如果您想保留$this->time($some_date),那么您可以执行以下操作(尽管我认为新方法更好):

public function time($time = false) {
    if(!$time)
       return $this;
    else {
       ...
    }
}

答案 1 :(得分:0)

即使班级有效,这个电话也可能不会:

$this->Time->convertMyDate($some_date);

目前正在尝试访问$ this的公共成员(时间):

$this->time()->convertMyDate($some_date);

现在将访问帮助 time() convertMyDate()方法(至少在理论上)

构建convertMyDate()帮助器并使用它可能是最简单也更灵活的:

$this->convertMyDate($this->time($some_date));

查看类似HeadScript()帮助程序的代码也可能会有所帮助,因为这样可以查找所需类型的内容。