我们有四个不同的环境:开发、q/a、测试和生产。我决定将我们的Application.cfm转换为Application.cfc,并将它们放入我们的源代码控制中。对于每个环境,有大量的应用程序变量具有不同的值。
最后,我创建了几个sql server表来根据这些环境变量的类型来存储它们。现在,我正在动态设置这些应用程序变量。
我的问题是,我开始在application.cfc中添加自定义方法。我不是百分之百确定这是不是最好的地方。例如: getAppLinks(),setAppLinks()。否则,我可以创建一个新的cfc并从Application.cfc调用这个cfc。
所有这些方法当前都在onApplicationStart()方法中被调用一次。
有人对在Application.cfc中实现自定义方法有什么意见吗?
谢谢
编辑:添加自定义方法:
<cffunction name="setUpAppDSNs" access="private" returnType="void" output="false">
<cfargument name="dsn" type="string" required="yes">
<cfargument name="serverName" type="string" required="yes">
<cfscript>
var dsnNames = structNew();
var qryAppDSNs = new Query(dataSource = '#arguments.dsn#',
sql = ' SELECT dsnID, #arguments.serverName#Server, description
FROM cfAppDSN ').execute().getResult();
for (i = 1; i lte qryAppDSNs.recordCount; i++) {
dsnNames['#qryAppDSNs.description[i]#'] = qryAppDSNs['#serverName#Server'][i];
}
StructAppend(application,dsnNames);
</cfscript>
</cffunction>发布于 2013-01-03 23:50:53
我有一个类似的问题,并通过使用我们的globalFunctions.cfc扩展application.cfc来解决它
<cfcomponent displayname="Application"
output="false" extends="shared.cfc.globalFunctions">我不知道这对你是否有效,但它允许我们使用相同的函数,多个不同的应用程序,而不需要维护这些函数的多个副本。
发布于 2013-01-04 05:52:42
Application.cfc只是一个CFC。它唯一的“特殊”之处在于:
但它仍然只是一个氯氟化碳。考虑到它被称为Application.cfc,并忙于应用程序生命周期,因此将与应用程序生命周期相关的方法放在其中是有意义的-与组织任何一样。
所以回答你的问题..。对于您的这些方法,Application.cfc正是合适的地方。
https://stackoverflow.com/questions/14140981
复制相似问题