我有:
1. inetpub/wwwroot/ProjectName/Application.cfc
2. inetpub/wwwroot/ProjectName/Admin/Application.cfc
我希望#2扩展#1并覆盖onRequest函数。 我查看了Sean Corfields的ApplicationProxy.cfc解决方案,但是如果您的项目位于根文件夹中,那么我的项目不是。
答案 0 :(得分:1)
您是否可以创建包含App.cfc#1的目录的映射?如果是这样,您可以扩展“yourMappingName.application”。
答案 1 :(得分:1)
如果需要扩展的Application.cfc位于根目录中, extends =“。Application”和 extends =“/ Application”都应该有效。
答案 2 :(得分: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>
然后,在您的子目录中,设置application.cfc以扩展AppProxy.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>
答案 3 :(得分:1)
我在onRequestStart和onApplicationStart中使用includes。 这样,当我编写另一个Application.cfc时,我可以只包含代码。