2015-05-18 2 views
1

Я создаю под-приложение, которое находится внутри всеобъемлющего приложения, которое содержит Application.cfc (который я не могу изменить). FW/1 требует расширения Application.cfc для работы. Как я могу использовать Application.cfc для FW/1, а также убедиться, что запущен весь Application.cfc?Использование FW/1 с уже существующим Application.cfc

+0

Вы не можете поместить приложение FW/1 в свой собственный каталог? –

+0

Я могу поместить его в каталог, но мне нужно наследовать все элементы корневого Application.cfc, а также расширить компонент framework.one. – user3899606

+0

Я не уверен, насколько это осуществимо. CF не будет поддерживать множественное наследование без каких-либо обезьян. Возможно ли, что 'framework.cfc' расширяет корень' Application.cfc'? –

ответ

0

Приложение Application.cfc можно обрабатывать аналогично другим компонентам холодной инфузии. Таким образом, вы можете расширить свой компонент из корневого приложения таким образом, чтобы вы наследовали все методы из корневого cfc. Просто убедитесь, что в любых методах, которые вы реализуете, также нужно сначала вызвать родительский метод с ключевым словом super.

Возможно, вам придется столкнуться с вопросом о правильном пути или, возможно, потребуется создать отображение CFC в зависимости от того, как настроен сервер.

Так что в вашем приложении Application.cfc и при условии, что другое приложение находится на одном уровне в иерархии папок.

<cfcomponent extends="../Application"> 
    <cffunction name="onRequestStart" returnType="boolean" output="true"> 
     <cfset var tmp = super.onRequestStart()> 
     <cfreturn tmp> 
    </cffunction> 
</cfcomponent> 
+0

Это не сработает. Чтобы создать приложение FW/1, Application.cfc должен расширить структуру. Подпрограмма не может распространять как родительское приложение, так и фреймворк. – Twillen

+0

, но если у вас есть контроль над приложением FW/1, вы можете просто изменить приложение framework для расширения от родителя. Хотя я недостаточно знаю об ограничениях, с которыми вам приходится работать, если это вариант для вас. Еще одна возможность для изучения - создать экземпляр родительского приложения, как и любой другой cfc. и просто вызовите необходимые методы в своем собственном приложении Application.cfc. Если вы думаете, что это сработает, я поправлю свой ответ на примере. –