我有一个项目文件夹。在项目文件夹中有一个Application.cfc,一个index.cfm和一个cfc'的文件夹:
/ ProjectFolder
在cfc
文件夹中,我有10个* .cfc文件。如何使用ColdFusion中的一个对象启动或映射10 * .cfc文件?
答案 0 :(得分:2)
如果任何一个CFC只能创建一次,这意味着它们只执行调用存储过程,包含算法或其他业务逻辑,那么您可以简单地将这些CFC创建为application
范围变量应用程序首先启动。
在此示例中,Application.cfc
位于根文件夹中,CFC文件位于/cfc/
文件夹中。
<cffunction name="onApplicationStart" returnType="boolean" output="false">
<cfset application.stObject = {
foo = new cfc.Foo()
, bar = new cfc.Bar()
, etc = new cfc.Etc()
} />
<cfreturn true />
</cffunction>
然后,在代码中的任何位置,您可以引用特定的CFC并在其中调用函数,如下所示:
<cfset qMyData = application.stObject.foo.getMyData() />
如果您需要使用数据填充CFC并通过用户的会话随身携带,您可能希望使用onSessionStart()
中的Application.cfc
创建该对象。您也可以在需要填充它并将其放入会话时创建它,而不是携带一个永远不会被使用的空版本。
最后,您可能只需要在页面请求的生命周期中根据需要创建某些CFC。这些将在variables
范围内创建,并在请求期间的某个时间点填充,并在请求完成后删除。