在ColdFusion中存储常用功能的位置

Tom*_*ard 3 coldfusion application.cfc

我们正在运行ColdFusion MX7.

我们遇到的一个问题是我们在很多页面中都使用了很多函数.让它们生活在'Global'ColdFusion范围中,而不是必须将它们包含在我们的所有页面中,这将是很好的.

有没有办法做到这一点,不涉及自定义标签等?

我知道我们可以将一些对象附加到Application或Server范围,但是我们必须这样引用它们.

简单地将它们添加到全球范围将是完美的.

编辑

感谢这些建议,这就是我提出的建议.基本上,对于OnRequestStart函数中的每个请求,在客户端作用域中为函数引用(this.functionName)分配一个正确命名的变量.

的Application.cfc:

<cfcomponent OUTPUT="FALSE">
<cfset This.name = "MyApp">
<CFSET This.clientManagement = true>
<CFSET This.SessionManagement = true>

<CFFUNCTION NAME="Coalesce" OUTPUT="FALSE" access="public">
    <CFARGUMENT NAME="ARG1">
    <CFARGUMENT NAME="ARG2">

    <CFIF ARG1 NEQ "">
        <CFRETURN ARG1>
    <CFELSE>
        <CFRETURN ARG2>
    </CFIF>
</CFFUNCTION>

<cffunction name="onRequestStart">
    <CFSET CLIENT.COALESCE = this.COALESCE>
</cffunction>

</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

此应用程序下的页面愉快地响应呼叫:

<CFOUTPUT>#COALESCE("ONE","TWO")#</CFOUTPUT>
Run Code Online (Sandbox Code Playgroud)

效果很好!

Hen*_*nry 6

没有"全球范围"这样的东西.

如果您在每个页面中讨论变量范围,可以尝试在Application.cfm中包含UDF.

如果您使用Application.cfc,请在CF7 doc中查找onRequest().