这是CakePHP的3.0定制逻辑
我要封装一些非平凡的PHP逻辑针对一个控制器操作一个.ctp文件中被称为(重复使用)数次。我试图找出最优雅的方式。
我有一些想法,其中没有一个似乎很优雅:
$这在CTP文件执行上下文类视图。将View类的方法放在.ctp文件中作为$ this-> function()调用。这似乎是错误的分工,尤其是因为佣工似乎是为此而设计的。此外,这些功能将暴露给所有ctp文件。
创建一个帮手。这似乎是最好的方法,但该帮助程序始终会加载并暴露给所有.ctp文件,这似乎违反了遏制,因为逻辑仅与一个操作的视图相关。在没有更好的解决方案的情况下,这是我正在采用的路线。
为此元素/模型创建视图的子类,并将逻辑放在那里,以按照(1)中的方式进行访问。这看起来似乎是最优雅的解决方案,但是看起来子类化View用于替代媒体(例如PDF),并且我无法看到如何在制作给定控制器操作的视图时指导Cake使用该类。
将函数内嵌在.ctp文件中。我甚至不确定这是否会正常工作,并且将函数放在.ctp文件中似乎很难看。
有什么建议吗?