расширять Application.cfc, но не из корня - PullRequest
0 голосов
/ 06 января 2010

у меня есть:

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

Я хочу, чтобы # 2 расширил # 1 и переопределил функцию onRequest. Я изучил решение ApplicationProxy.cfc Шона Корфилда, но это если ваш проект находится в корневой папке, а мой нет.

Ответы [ 4 ]

1 голос
/ 07 августа 2010

Я использую включает в себя onRequestStart и onApplicationStart. Таким образом, когда я пишу другой Application.cfc, я могу просто включить код.

1 голос
/ 07 января 2010

Оба extends = ". Application" и extends = "/ Application" должны работать, если Application.cfc, который необходимо расширить, находится в корневом каталоге.

1 голос
/ 19 января 2010

В корне создайте файл с именем 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>
1 голос
/ 06 января 2010

Можете ли вы создать сопоставление с каталогом, который содержит App.cfc # 1? Если это так, вы можете расширить "yourMappingName.application".

...