ColdFusion MX7を実行しています。ColdFusionで共通の関数を格納する場所
1つの問題は、多くのページで多くの機能を使用できることです。私たちのすべてのページにそれらを含めるのではなく、「グローバルな」ColdFusionスコープに住んでもらうのは良いことです。
これを行う方法はカスタムタグなどを伴わないものですか?
アプリケーションやサーバーのスコープにいくつかのオブジェクトを添付することができますが、そのオブジェクトを参照する必要があります。
グローバルスコープに追加するだけで完璧です。提案へ
EDIT
おかげで、ここで私が思いついたものです。基本的には、OnRequestStart関数の各要求に対して、関数参照(this.functionName)をクライアントスコープ内の適切な名前の変数に割り当てます。
のApplication.cfc:
<cfcomponent OUTPUT="FALSE">
<cfset This.name = "MyApp">
<CFSET This.clientManagement = true>
<CFSET This.SessionManagement = true>
<CFFUNCTION NAME="Coalesce" OUTPUT="FALSE" access="public">
<CFARGUMENT NAME="ARG1">
<CFARGUMENT NAME="ARG2">
<CFIF ARG1 NEQ "">
<CFRETURN ARG1>
<CFELSE>
<CFRETURN ARG2>
</CFIF>
</CFFUNCTION>
<cffunction name="onRequestStart">
<CFSET CLIENT.COALESCE = this.COALESCE>
</cffunction>
</cfcomponent>
このアプリケーションの下にあるページは喜んでコールに応答します。
<CFOUTPUT>#COALESCE("ONE","TWO")#</CFOUTPUT>
素晴らしい作品
!
私のために素晴らしい仕事をしている「が、その後、私たちはそのように参照する必要があります。」ではなく、本当に。 CFはアプリケーションスコープ内の関数を探します。 アプリケーションスコープ内にfuncA()がある場合は、funcA()を呼び出すだけで動作します。 Application.funcA()を呼び出す必要はありません – Henry
(application.cfcを使用して)アプリケーションスコープから応答する公開関数を取得できませんでした。私は何か見落としてますか? –
使い終わったコードを共有してくれてありがとう。質問に追加する代わりに、答えとして投稿する必要があります。 –