Cakephp 3.0视图中的自定义逻辑

时间:2015-12-16 17:32:39

标签: cakephp cakephp-3.0

这适用于CakePHP 3.0

我想封装一些非常重要的php逻辑,在一个.ctp文件中多次调用(重用)一个控制器操作。我试图找出最优雅的方式。

我有一些想法,其中没有一个看起来很优雅:

  1. $ CTP文件执行上下文中的这是类View。将方法放在View类上以在.ctp文件中调用$ this-> function()。这似乎是错误的分工,特别是因为助手似乎是为此而设计的。此外,这些功能将暴露给所有ctp文件。

  2. 创建帮助器。这似乎是最好的"方式去,但是这个帮助器总是被加载并暴露给所有.ctp文件,这似乎违反了包含,因为逻辑只与一个动作的视图相关。如果没有更好的解决方案,这就是我正在采取的路线。

  3. 为此元素/模型创建View的子类,并将逻辑放在那里,如(1)所示进行访问。这似乎是最优雅的解决方案,但似乎子类化View适用于备用媒体(例如PDF),我无法看到如何在为给定控制器制作视图时指示Cake使用该类#39 ;行动。

  4. 在.ctp文件中内联函数。我甚至不确定这是否能正常工作,将函数放在.ctp文件中似乎很难看。

  5. 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

嗯,你没有解释你想在那里使用什么样的超级复杂逻辑,所以我会说3)。这很有可能,you can load helpers in a view files

$this->loadHelper('MyFancyLogic');

您还可以结帐view cells。但同样,你没有解释你试图解决的问题,很难推荐任何特定的东西。所以我会说这是一个帮助者或一个观察细胞。