【问题标题】:Custom logic in Cakephp 3.0 viewCakephp 3.0 视图中的自定义逻辑
【发布时间】:2015-12-16 17:32:38
【问题描述】:

这是针对 CakePHP 3.0 的

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

我有几个想法,似乎都不是很优雅:

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

  2. 创建一个助手。这似乎是“最好的”方式,但该帮助程序总是被加载并暴露给所有 .ctp 文件,这似乎违反了包含,因为逻辑仅与一个操作的视图相关。在没有更好的解决方案的情况下,这是我正在采取的路线。

  3. 为此元素/模型创建 View 的子类,并将逻辑放在那里,以便按 (1) 中的方式访问。这似乎是最优雅的解决方案,但子类化 View 似乎是为替代媒体(例如 PDF)设计的,在为给定控制器的操作制造视图时,我看不到如何指导 Cake 使用该类。

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

有什么建议吗?

【问题讨论】:

    标签: cakephp cakephp-3.0


    【解决方案1】:

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

    $this->loadHelper('MyFancyLogic');
    

    您也可以结帐view cells。但是同样,你没有解释你试图解决什么问题,很难推荐任何具体的东西。所以我会说它是一个助手或一个视图单元格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多