2013-06-16 5 views
1

Я тестовое приложение структурирована следующим образом:Как наследовать от другого Application.cfc

  • Application.cfc
  • ApplicationProxy.cfc
  • index.cfm
  • sub_app/
    • Application.cfc
    • index.cfm

и я хочу, чтобы мое вспомогательное приложение наследовало все переменные и события с верхнего уровня Application.cfc.

Я прочитал и реализован Sean Corfield's ApplicationProxy method для расширения компонент приложения, но я не могу заставить его работать, когда я посещаю sub_app/index.cfm Я получаю эту ошибку:

Could not find the ColdFusion Component or Interface ApplicationProxy. 

От ошибки смогу только угадайте, что приложение ищет не в том месте, как я могу это исправить?

Application.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> 

ApplicationProxy:

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

index.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#"> 
+0

Возможно, этот другой ответ поможет объяснить это: [Расширение application.cfc в подкаталоге] (http://stackoverflow.com/questions/307423/extending-application-cfc-in-a-subdirectory/307441#307441) –

ответ

1

Лучший способ сделать это создать ApplicationProxy.cfc файл со всей функцией вам нужно наследовать, а затем распространяется в Application.cfc везде, где это необходимо. Я использую этот метод с давних пор и не сталкиваюсь с этим вопросом.

Смежные вопросы