首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在application.cfc中创建一个无作用域的全局吗?

问可以在application.cfc中创建一个无作用域的全局吗?
EN

Stack Overflow用户
提问于 2010-06-09 22:46:50
回答 3查看 3.1K关注 0票数 7

我正在迁移一个使用application.cfm的旧应用程序来使用application.cfc。CFM设置了一些全局变量,例如

代码语言:javascript
复制
<cfset dsn = "myDSN">

我曾尝试将该行代码放入onApplicationStart、onRequestStart等中,但试图在测试页中打印出此值会导致错误。在应用程序作用域中设置一个值(例如application.dsn)当然很好,但我的截止日期很紧,不能通过在站点范围内搜索和替换每个全局对象来搅局。

我知道将这些放在作用域中是正确的做法,但是,就目前而言,有没有什么方法可以切换到使用Application.CFC,而仍然创建未限定作用域的全局变量?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-09 23:04:33

尝试将其放入onRequest()中,而不是onRequestStart()中。

票数 10
EN

Stack Overflow用户

发布于 2010-06-09 23:36:22

您需要同时使用Application.cfc和Application.cfm。将所有主要代码从Application.cfm移到Applicaiton.cfc的适当部分。

然后,这可能是Applicaiton.cfm中唯一的一行:

<cfset variables.dsn = "myDSN" />

现在返回到Application.cfc,并在所有函数之外添加以下代码:

<cfinclude template="Application.cfm" />

在test.cfm上,现在应该能够输出不带作用域前缀的dsn变量:

<cfoutput>#dsn#</cfoutput>

如果在CFC内的任何地方定义variables.dsn,就是将变量放入CFC的变量作用域,该变量作用域是CFC私有的。通过在CFM中定义它,然后包括CFM,它被保存在页面请求的变量范围内。

票数 4
EN

Stack Overflow用户

发布于 2010-11-22 08:03:07

我自己已经解决了这个问题,我将给你我的解决方案。请注意,这在CF9上有效,我不知道其他版本(以前版本中的onRequest和AJAX调用存在问题)。基本上,在您的Application.cfc中有必要拥有onRequest函数。这是一个基本的模板:

代码语言:javascript
复制
<cffunction name="onRequest" access="public" returntype="void" output="true">
    <cfargument name="targetPage" type="string" required="true">

    <!--- include the requested page. --->
    <cfinclude template="#arguments.TargetPage#">
</cffunction>

As far as I understand it: it's actually the cfinclude that enables you to access the functions.  So, with this onRequest in your Application.cfc you can access the 'this' scope of the Application.cfc which would include your public functions & variables.
If you want a more in depth example of this then check out Framework-1 by Sean Corfield.  It does this exact thing, all API methods are contained in the Application.cfc.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3006913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档