ColdFusion 11:更改扩展 Application.cfc 中不同函数的应用程序“this”范围元数据

2024-03-28

我对 ColdFusion 应用程序工作流程有了大致的了解。但有些部分我仍然不清楚。一般工作流程如下...

  1. 公共应用程序设置已设置(即 this.name、this.mappings ext.)
  2. 应用程序启动时
  3. 会话开始时
  4. 请求开始时

我有一个带有 Application.cfc 的子目录,它扩展了存在于 web 根目录的根 Application.cfc

在阅读了大量描述这种设计模式的博客之后......

  • ColdFusion 应用程序特定的映射与 CFinclude 配合使用 https://www.bennadel.com/blog/2144-coldfusion-application-specific-mappings-work-with-cfinclude.htm
  • 使用 A 扩展 Application.cfc ColdFusion 框架组件 相对路径代理 https://www.bennadel.com/blog/2115-extending-the-application-cfc-coldfusion-framework-component-with-a-relative-path-proxy.htm

  • 在子目录 Application.cfc 中扩展 OnSessionStart() https://www.bennadel.com/blog/1499-ask-ben-extending-onsessionstart-in-a-sub-directory-application-cfc.htm

  • 应用程序 cfc-when-things-run http://blog.adamcameron.me/2012/08/more-on-applicationcfc-when-things-run.html

  • ColdFusion Application.cfc - 执行顺序 https://stackoverflow.com/questions/11936210/coldfusion-application-cfc-order-of-execution

在最后一个链接中(一些答案提供了一些基本的见解,但没有一个真正涉及使用this范围具有扩展的 Application.cfc 。以下答案之一让我失望..(它可能不正确,因为没有赞成票)

Application.cfc 文件内此范围内的任何内容都将成为 应用程序变量,每个应用程序生命周期仅创建一次 循环。应用程序启动后,没有其他用户使用该应用程序 在 Application.cfc 内

我倾倒了#application#范围,然后就不同了#this#

getApplicationMetaData()似乎转储相同的数据<cfdump var=#this#>所以我猜测这个元数据是最初设置的全局配置变量。

1) 如果 Application.cfc 使用代理扩展根 Application.cfc,则this扩展组件共享的范围(用于设置应用程序名称)? (如果我设置this.name = "root"在根组件中和this.name = "user"在派生的应用程序中,冷聚变是否将其视为两个不同的应用程序,或者只是应用程序名称的值发生变化?

2)是否有办法更改应用程序元数据this任何 Application.cfc 函数中的作用域后伪构造函数 (onApplicationStart ,onSessionStart ,onRequestStart)?

我正在考虑尝试使用以下命令在根组件中设置应用程序特定的映射onApplicationStart()以便映射仅设置一次。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ColdFusion 11:更改扩展 Application.cfc 中不同函数的应用程序“this”范围元数据 的相关文章

随机推荐