我們有四種不同的環境:dev,q/a,test和prod。我決定將我們的Application.cfm
轉換爲Application.cfc
,並將它們放在我們的源代碼控制中。有很多應用程序變量對每個環境都有不同的值。Application.cfc中的自定義方法
我最終創建了幾個sql服務器表來存儲這些環境變量根據它們的類型。現在,我正在動態設置這些應用程序變量。
我的問題是,我開始在application.cfc中添加自定義方法。如果這是最好的地方,我不是100%確定的。 [例如:getAppLinks(),setAppLinks()]。否則,我可以創建一個新的cfc並從Application.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>
在我之前的工作中,我們有很多自定義方法位於我們的Application.cfc中,我們從來沒有遇到過問題。如果這將是在整個應用程序中使用的方法,我沒有看到它的問題。 – Anonymous
我這樣做只是在application.cfc中調用的代碼。我的onApplicationStart調用setupApplication(),然後調用一些設置方法。關於這一點的好處是,在onRequest中,我可以檢查URL.reset ==「whatever」並從那裏調用setupApplication(),這有助於開發 – barnyr
太棒了!我有類似的強制應用程序啓動onRequestStart方法內。 – CFNinja