【问题标题】:CakePHP Sharing code between helpersCakePHP 在助手之间共享代码
【发布时间】:2012-07-03 15:17:55
【问题描述】:

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

我在想我会在一个助手中拥有一个工厂函数(Tracker 是一个 TrackerHelper),就像这样;

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

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

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

更一般地说;如果您不想在一堆不同的视图中重复,如果数据是 A 类型,则使用助手 A,如果是 B 类型,则使用助手 B,并且助手 A 和 B 共享一些代码,您会怎么做。

如果是这样,可能有更聪明的方法来解决这个问题;欢迎分享!

【问题讨论】:

    标签: cakephp helpers


    【解决方案1】:

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

    class TrackerHelper extends AppHelper {
        public $helpers = array('BooleanTracker');
    
        public function someMethod() {
            // Using the other helper
            $this->BooleanTracker->someOtherMethod();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2016-11-05
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多