Extend 2 Application.cfc (Framework Application.cfc and subA



我正在将一个应用程序迁移到一个框架应用程序(特别是Fusebox 5.5)。我需要扩展两个application.cfc[Fusebox5.application]和另一个位于两个目录上的文件夹中的application.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的文章,可能愿意尝试一下,但这将是对现有代码库的任何修改的范围
  • 我可以考虑一个替代框架,但我正在迁移的许多现有代码库本身并不适用。我的主要目标就是组织代码

如果不知道需要重用哪个Application.cfc中的哪些位,很难回答这个问题。

然而,CF中不能有多重继承。我想你知道这一点。

你可以想象在你的子应用程序中创建一个新的CFC,它扩展了主应用程序中的CFC,然后在你的辅助应用程序的Application.CFC中创建该CFC的实例。然后你可以根据需要调用它的公共方法并访问它的THIS范围。

然后,您的子应用程序可以正常扩展Fusebox应用程序。

或者,也可以反过来做,这取决于哪一种更有意义。

除此之外,您可以将主应用程序中所需的部分重构为其他结构(包括文件、不同的CFC或其他),然后从每个主应用程序和子应用程序中调用该代码,并再次从子应用程序扩展Fusebox。显然,这意味着要对主应用程序进行篡改,并再次进行回归测试等。

最新更新