扩展Application.cfc,但不是从root

时间:2010-01-06 18:34:23

标签: coldfusion application.cfc

我有:

1. inetpub/wwwroot/ProjectName/Application.cfc
2. inetpub/wwwroot/ProjectName/Admin/Application.cfc

我希望#2扩展#1并覆盖onRequest函数。 我查看了Sean Corfields的ApplicationProxy.cfc解决方案,但是如果您的项目位于根文件夹中,那么我的项目不是。

4 个答案:

答案 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时,我可以只包含代码。