【问题标题】:ColdFusion: Are there any use cases where an Application.cfm is preferable to an Application.cfcColdFusion:是否存在 Application.cfm 优于 Application.cfc 的用例
【发布时间】:2018-05-06 18:39:20
【问题描述】:

我正在升级一个大型旧版 ColdFusion 应用程序,该应用程序大量使用 Application.cfm 模板文件,而不是较新的 Application.cfc 文件。

似乎Application.cfc 为 Application.cfm 文件可以做的所有事情提供了一种更简洁、更有效的解决方案。

  • Application.cfm 为每个请求按顺序运行每一行,所以 它将在每个后续的新页面查询中重新创建应用程序变量。 (如果很多可能会导致性能下降 已加载应用程序变量)The Application.cfc 允许某些真正的全局变量避免使用 onApplicationStart()onRequestStart() 方法重新创建

有没有人遇到过Application.cfm 页面比Application.cfc 更可取的用例/示例(除了移植所需的明显时间)

【问题讨论】:

  • 这是一个奖励是否证明工作合理的问题。

标签: coldfusion coldfusion-9 application.cfc application.cfm


【解决方案1】:

IMO,这不是一个“太宽泛”的话题。这不是意见,我将其归类为最佳实践。

使用cfc 而非cfm 的原因有很多。我一直处于这种情况。

这是Application.cfc 中的list of the common functions(我相信你知道):

  • onApplicationStart()
  • onSessionStart()
  • onRequestStart()
  • onRequest()
  • onRequestEnd()
  • onSessionEnd()
  • onApplicationEnd()
  • onError()

无需深入了解每个细节,如果能够将代码分类到这样的上下文存储桶中,您就可以更好地管理各种变量范围。如果没有这些上下文触发器,您只是在回复Application.cfm 的程序方面。

虽然两者都在每个页面请求上运行,但仅运行 cfc 中的某些函数。 cfm,你的代码一直在运行,检查何时应该或不应该运行的条件。

坚持使用cfm 肯定风险较小,但如果您正在升级它,您应该期望您会在此过程中打破常规。采用最佳实践应该是这个过程的一部分。

【讨论】:

  • 我同意此列表中的所有内容,但我想再添加一个。因为是cfc,所以可以使用extends。有丰富的框架,如 FW/1 和 Taffy,可以利用这一点。另外我认为如果你想使用 ORM,你必须使用 application.cfc。
  • 感谢您的回复!因此,我肯定看到了 .CFC 优于 .CFM 的优势,但是在应用最佳实践的现代应用程序中,是否有人会使用 CFM 而不是 CFC?
  • 如果我必须照顾运行 CF 5 的 15 年旧计算机,并且它每天为公司带来数百万美元的收入,并且我被告知永远不要触摸并且允许我抱怨设置每天我的孩子得了癌症,我妻子的胳膊和腿都被截肢了,猫想要金枪鱼,那我就别管它了。使用application.cfm 的唯一原因是您不想打扰它。
猜你喜欢
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
相关资源
最近更新 更多