CakePHP在助手之间共享代码

时间:2012-07-03 15:17:56

标签: cakephp helpers

我有两种相似但不同的数据。他们有一些他们共享的表现代码,但有些代表他们以不同的方式实现。

我以为我会在帮助器中有一个工厂功能(Tracker是TrackerHelper)就像这样;

$this->Tracker->getInstance("boolean"); // Returns a BooleanTrackerHelper

但我不确定如何从另一个助手中返回另一个助手。我认为我不能只做一个return new BooleanTrackerHelper(),因为CakePHP可能有它自己想要经历的例程,此外;这将迫使我将所有类放在同一个文件中。

手册中有一个函数允许您从视图($this->Helpers->load())中加载帮助程序,但我想从另一个帮助程序加载帮助程序。

更普遍;如果您不想在一堆不同的视图中重复,如果数据类型为A,请使用帮助程序A,如果类型为B,请使用帮助程序B,并且帮助程序A和B共享某些代码段,您会怎么做?

如果有的话,可能有一种更明智的解决方法;请随时分享!

1 个答案:

答案 0 :(得分:1)

如果您只想在另一个帮助器中使用一个帮助器,只需将其包含在您要使用它的$helpers数组中:

class TrackerHelper extends AppHelper {
    public $helpers = array('BooleanTracker');

    public function someMethod() {
        // Using the other helper
        $this->BooleanTracker->someOtherMethod();
    }
}
相关问题