扩展 Application.cfc,但不是从根目录扩展

发布于 2024-08-17 04:17:22 字数 253 浏览 6 评论 0原文

我有:

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

我希望 #2 扩展 #1 并覆盖 onRequest 函数。 我研究了 Sean Corfields 的 ApplicationProxy.cfc 解决方案,但前提是您的项目位于根文件夹中,而我的项目不在根文件夹中。

I have:

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

I want #2 to extend #1 and override the onRequest function.
I've looked into Sean Corfields's ApplicationProxy.cfc solution, but that is if your project is in the root folder, which mine isn't.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

紧拥背影 2024-08-24 04:17:22

您可以创建到包含 App.cfc #1 的目录的映射吗?如果是这样,您也许可以扩展“yourMappingName.application”。

Can you create a mapping to the directory that contains App.cfc #1? If so, you may be able to extend "yourMappingName.application".

满地尘埃落定 2024-08-24 04:17:22

如果您需要扩展的 Application.cfc 位于根目录中,extends=".Application"extends="/Application" 都应该可以工作。

Both extends=".Application" and extends="/Application" should work if Application.cfc you need to extend is in the root.

〃安静 2024-08-24 04:17:22

在根目录中,创建一个名为 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 不在根目录中,这也会起作用。在这种情况下,请确保您的“子”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>

In the root, create a file named AppProxy.cfc. Its contents are thus:

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

Then, in your subdirectory, set up your application.cfc to extend AppProxy.cfc. This will successfully inherit your root directory application.cfc methods.

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

This will work, by the way, even if the AppProxy isn't in the root directory. In that case, make sure your "child" application.cfc uses dot notation to find the 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>
喜爱皱眉﹌ 2024-08-24 04:17:22

我在 onRequestStart 和 onApplicationStart 中使用包含。
这样,当我编写另一个 Application.cfc 时,我可以只包含代码。

I use includes in onRequestStart and onApplicationStart.
That way when I am writing another Application.cfc, I can just include the code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文