我们正在运行 ColdFusion MX7。
我们遇到的一个问题是我们在很多页面中使用了很多功能。让它们存在于“全球”ColdFusion 范围内而不是必须将它们包含在我们所有的页面中会很好。
有没有不涉及自定义标签等的方法?
我知道我们可以将一些对象附加到应用程序或服务器范围,但是我们必须照此引用它们。
只需将它们添加到全局范围就很完美了。
编辑
感谢这些建议,这就是我想出的。基本上,对于 OnRequestStart 函数中的每个请求,将函数引用 (this.functionName) 分配给客户端范围内正确命名的变量。
应用程序.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>
此应用程序下的页面愉快地响应调用:
<CFOUTPUT>#COALESCE("ONE","TWO")#</CFOUTPUT>
效果很好!