2013-07-01 17 views
0

Я работаю над переносом приложения в приложение фреймворка (в частности, Fusebox 5.5). Мне нужно было бы расширить два Application.cfc [Fusebox5.Application] и еще один Application.cfc, который находится в папке с паролями. Ниже представлена ​​структура каталогов:Extend 2 Application.cfc (Framework Application.cfc и subApplication.cfc)

--WebRoot 
    --Fusebox5 <---(This is where the corefiles for Fusebox is stored) 
    --Folder1 <---(This is the Application.CFC file I want to extend) 
     --sub-Folder1 
      --sub-subOfFolder1 
       --sub-sub-subOfFolder1 
        --Application Folder (This is where the application lives) 

Файл Application.cfc имеет следующий код:

<cfcomponent extends="fusebox5.Application" output="false"> 

Это не так просто, как добавление fusebox5.Application,Folder1.Application, но в основном, это то, что я хочу сделать. Любая помощь будет оценена по достоинству.

Пара предостережений:

  • Я не хочу делать какие-либо воздействия на любой существующий код вне папки приложения. Я читал о расширении ApplicationProxy.cfc и, вероятно, был бы готов попробовать это, но это будет какая-либо модификация существующей базы кода.
  • Я могу рассмотреть альтернативную структуру, но большая часть существующей базы кода, которую я переношу, не поддалась бы очень хорошо. Моя основная задача - просто организовать код.
+1

Не имеет большого смысла хотеть расширить два разных приложения Application.cfc в виде множественного наследования. Ну не мне так или иначе. Почему вам нужно расширять Application & acutes? И Fusebox's Application.cfcs? Я не сомневаюсь, что вам нужно это сделать по какой-то причине, но разработка причины поможет ответить. –

+0

Иисус, я не верю, что поставил апостроф в «Application.cfc's»: -/ –

+0

@AdamCameron - Я пытался сделать это, чтобы использовать приложение Fusebox Application.CFC, которое необходимо для запуска фреймворка, а также исходное приложение Application.cfc. Я не знаю, в какой степени он используется, но я знаю, по крайней мере, имя приложения, DSN и некоторые параметры onRequestStart инициализируются там. Я согласен с вами в том, что это не имеет смысла. Я как бы отказался от идеи поместить его в структурированную структуру, и теперь я просто пытаюсь реорганизовать/разделить страницы. – Chester

ответ

1

Не зная, какие биты, из которых Application.cfc вам нужно повторно использовать, на это трудно ответить.

Однако вы не можете иметь множественное наследование в CF. Наверное, ты это знаешь.

Возможно, вы можете создать новый CFC в своем вспомогательном приложении, который расширяет его в главном приложении, а затем создать экземпляр этого приложения Application Application Application Application Application. Затем вы можете вызвать свои общедоступные методы и получить доступ к ЭТОЙ области, как это необходимо.

И ваше суб-приложение может затем расширить Fusebox по нормали.

Или, возможно, сделайте это наоборот, в зависимости от того, что имеет больше смысла.

Помимо этого вы можете реорганизовать необходимые вам биты из основного приложения в какую-либо другую конструкцию (и включить файл, другой CFC или что-то еще), а затем вызвать этот код из каждого основного приложения и подкаталога, приложение, и снова расширьте Fusebox из под-приложения. Очевидно, что это означает обезглавливание с основным приложением и повторное тестирование снова и т. Д.

+0

Адам, спасибо за понимание. Я рассмотрю создание нового CFC для суб-приложения и оттуда. У меня такое чувство, что я столкнусь с некоторыми конфликтами (по-моему, на OnRequestStart). Хотя я неохотно это делаю и, вероятно, не буду, что вы думаете о добавлении материала из App.CFC в Fusebox.CFC? – Chester

+0

Я бы не возился с Fusebox Application.cfc, no. Приложение Application.cfc должно заниматься только вещами FB; так же, как, действительно, файлы Application.cfc в других приложениях должны * действительно * заботиться только о своих собственных интересах. Я предполагаю, что ваша ситуация «интересна», потому что вполне возможно иметь приложение, которое «является« Fusebox app »(« используется »в смысле OO, а также« является »[вашим вспомогательным приложением]. sub app завершает работу с «fusebox». –

+0

Другие фреймворки (например, ColdBox) могут быть запущены либо с использованием модели «extends», как вы пытаетесь использовать Fusebox здесь, либо в модели «внедренного экземпляра», где все Coldbox все это просто переменная экземпляра вашего Application.cfc, и вы вызываете методы на ней, а не полагаетесь на ее расширение вашим приложением. Можно ли запустить Fusebox таким образом? –

 Смежные вопросы

  • Нет связанных вопросов^_^