如何用一个对象启动多个cfc?
How to initiate the multiple cfc with one object?
我有一个项目文件夹。项目文件夹里面有一个Application.cfc,一个index.cfm和一个cfc的文件夹:
/项目文件夹
- --- Application.cfc
- --- index.cfm
- --- cfc(文件夹)
- SomeComponent.cfc
- OtherComponent.cfc
- ...
在cfc
文件夹中,我有10个*.cfc文件。如何在 ColdFusion 中用一个对象启动或映射 10 个 *.cfc 文件?
如果任何 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 并通过用户会话携带它,您可能希望使用 Application.cfc
中的 onSessionStart()
创建该对象。您还可以在需要填充它并将其放入会话时创建它,而不是携带一个永远不会被使用的空版本。
最后,您可能只需要在页面请求的生命周期内根据需要创建某些 CFC。这些将在 variables
范围内创建并在请求期间的某个时刻填充,并在请求完成后删除。
我有一个项目文件夹。项目文件夹里面有一个Application.cfc,一个index.cfm和一个cfc的文件夹:
/项目文件夹
- --- Application.cfc
- --- index.cfm
- --- cfc(文件夹)
- SomeComponent.cfc
- OtherComponent.cfc
- ...
在cfc
文件夹中,我有10个*.cfc文件。如何在 ColdFusion 中用一个对象启动或映射 10 个 *.cfc 文件?
如果任何 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 并通过用户会话携带它,您可能希望使用 Application.cfc
中的 onSessionStart()
创建该对象。您还可以在需要填充它并将其放入会话时创建它,而不是携带一个永远不会被使用的空版本。
最后,您可能只需要在页面请求的生命周期内根据需要创建某些 CFC。这些将在 variables
范围内创建并在请求期间的某个时刻填充,并在请求完成后删除。