루트

2010-01-06 1 views
0
내가 가진

에서 Application.cfc를 확장 할 수 있지만. Sean Corfields의 ApplicationProxy.cfc 솔루션을 살펴 보았습니다. 프로젝트가 내 루트 폴더에 있지 않은 경우입니다.루트

답변

1

나는 onRequestStart와 onApplicationStart에 includes를 사용합니다. 그런 식으로 다른 Application.cfc를 작성할 때 코드를 포함 할 수 있습니다.

1

App.cfC# 1을 포함하는 디렉토리에 대한 매핑을 만들 수 있습니까? 그렇다면 "yourMappingName.application"을 확장 할 수 있습니다.

+0

CFgears 감사하지만 매핑 전에 확장 매개 변수가 적용됩니다. –

+0

확장하기 전에 적용된 CF 관리에서 만든 매핑을 생각하십시오. – Sergii

+0

이것은 공유 서버에 있으므로 CF 관리자로 들어갈 수 없습니다. –

1

당신이 확장 할 필요가 Application.cfc 루트에있는 경우 작동합니다 =. "응용 프로그램"는 = 확장 "/ 응용 프로그램"을 확장합니다.

+0

Sergii에게 감사하지만 1 번은 루트에 없습니다. –

+1

그렇다면 왜 extends = "ProjectName.Application"을 설정할 수 없습니까? – Sergii

+0

dev에 대해서는 \ ProjectName에 있지만 프로덕션에서는 루트에 있습니다. –

1

루트에서 AppProxy.cfc라는 파일을 만듭니다. 그 내용은 이렇게 있습니다 :

<cfcomponent output="false" extends="application" displayname="Application.cfc Proxy" hint="Extends the root application object so that subdirectories may extend it."> 
</cfcomponent> 

그런 다음 하위 디렉토리에, AppProxy.cfc을 확장 할 application.cfc을 설정합니다. 이렇게하면 루트 디렉토리 인 application.cfc 메소드가 상속됩니다.

<cfcomponent output="false" extends="AppProxy"> 
    <cffunction name="onRequestStart" output="true"> 
     <cfset super.onRequestStart() /> 
     <!--- Some other stuff happens here. ---> 
    </cffunction> 
</cfcomponent> 

AppProxy가 루트 디렉토리에 없더라도 작동합니다. 이 경우 "child"application.cfc가 점 표기법을 사용하여 AppProxy를 찾았는지 확인하십시오.

<cfcomponent output="false" extends="Path.To.Child.Directory.AppProxy"> 
     <cffunction name="onRequestStart" output="true"> 
      <cfset super.onRequestStart() /> 
      <!--- Some other stuff happens here. ---> 
    </cffunction> 
</cfcomponent> 
+0

에릭, 팁 주셔서 감사! "Path.To.Child.Directory"는 개발 서버에서 "Projects.ClientName"이지만 프로덕션 서버에서는 루트에 있기 때문에 문제가 있습니다. –

+0

트리의 맨 위에있는 Application.cfc를 subfolder.ApplicationProxy로 확장하여 서브 폴더에있는 Application.cfc를 확장 할 수 있는지 궁금합니다. 그게 효과가있을거야! –