我有两种相似但不同的数据。他们有一些他们共享的展示代码,但有些他们以不同的方式实现。
我在想我会在一个助手中拥有一个工厂函数(Tracker 是一个 TrackerHelper),就像这样;
$this->Tracker->getInstance("boolean"); // Returns a BooleanTrackerHelper
但我不确定如何从另一个助手中返回另一个助手。我不认为我可以这样做,return new BooleanTrackerHelper()
因为 CakePHP 可能有它自己想要通过的例程,此外;这将迫使我将所有类放在同一个文件中。
手册中有一个功能允许您从视图 ( $this->Helpers->load()
) 中加载帮助器,但我想从另一个帮助器加载帮助器。
更普遍; 如果您不想在一堆不同的视图中重复,如果数据是 A 类型,则使用助手 A,如果是 B 类型,则使用助手 B,并且助手 A 和 B 共享一些代码,您会怎么做。
如果是这样,可能有更聪明的方法来解决这个问题;请随时分享!