【发布时间】:2015-12-16 17:32:38
【问题描述】:
这是针对 CakePHP 3.0 的
我想在一个 .ctp 文件中封装一些重要的 php 逻辑,以便在一个控制器操作中多次调用(重用)。我正在尝试找出最优雅的方法。
我有几个想法,似乎都不是很优雅:
CTP 文件执行上下文中的$this 是类View。将方法放在 View 类上以在 .ctp 文件中作为 $this->function() 调用。这似乎是错误的分工,特别是因为助手似乎是为此而设计的。此外,这些函数将公开给所有 ctp 文件。
创建一个助手。这似乎是“最好的”方式,但该帮助程序总是被加载并暴露给所有 .ctp 文件,这似乎违反了包含,因为逻辑仅与一个操作的视图相关。在没有更好的解决方案的情况下,这是我正在采取的路线。
为此元素/模型创建 View 的子类,并将逻辑放在那里,以便按 (1) 中的方式访问。这似乎是最优雅的解决方案,但子类化 View 似乎是为替代媒体(例如 PDF)设计的,在为给定控制器的操作制造视图时,我看不到如何指导 Cake 使用该类。
将函数内嵌到 .ctp 文件中。我什至不确定这是否能正常工作,而且将函数放在 .ctp 文件中似乎很难看。
有什么建议吗?
【问题讨论】:
标签: cakephp cakephp-3.0