1

次のような構造のテストアプリケーションがあります。

  • アプリケーション.cfc
  • ApplicationProxy.cfc
  • 索引.cfm
  • サブアプリ/
    • アプリケーション.cfc
    • 索引.cfm

そして、サブアプリが最上位の Application.cfc からすべての変数とイベントを継承するようにします。

アプリケーション コンポーネントを拡張するための Sean Corfield の ApplicationProxy メソッドを読んで実装しましたが、sub_app/index.cfm にアクセスすると、次のエラーが発生するため、機能させることができません。

Could not find the ColdFusion Component or Interface ApplicationProxy.

エラーから、アプリケーションが間違った場所を探しているとしか推測できません。これを修正するにはどうすればよいですか?

アプリケーション.cfc:

<cfcomponent name="Application" output="true">

<cfset THIS.name = "testAppA">
<cfset THIS.sessionManagement="Yes">
<cfset THIS.applicationTimeout = createTimeSpan(0,0,10,0)>
<cfset THIS.sessionTimeout = createtimespan(0,0,10,0)>
<cfset THIS.clientManagement = true>
<cfset THIS.clientStorage = "cookie">
<cfset THIS.loginStorage = "cookie">
<cfset THIS.setDomainCookies = false>
<cfset THIS.setClientCookies = true>
<cfset THIS.scriptProtect = true>
<cfset THIS.secureJSON = true> 

<cffunction name="onApplicationStart" returntype="void">

    <cfset APPLICATION.name = "testAppA">
    <cfset APPLICATION.test = "test var">

</cffunction>

<cffunction name="onSessionStart" returntype="void">

    <cfset SESSION.loggedIn = 1>

</cffunction>    

</cfcomponent>

アプリケーションプロキシ:

<cfcomponent name="ApplicationProxy" extends="Application">
</cfcomponent>

インデックス.cfm:

<a href="sub_app/index.cfm">Sub app</a>

sub_app/Application.cfc:

<cfcomponent extends="ApplicationProxy" output="true">

    <!---

            Uses parent Application settings

    --->

</cfcomponent>

sub_app/index.cfm:

<a href="../index.cfm">Parent app</a>

<cfdump var="#Application#">
4

1 に答える 1

1

最善の方法は、継承する必要があるすべての機能を含む ApplicationProxy.cfc ファイルを作成し、必要に応じて Application.cfc で拡張することです。私は長い間この方法を使用しており、このアプローチに問題はありません。

于 2013-06-19T12:58:42.257 に答える