Coldfusion 在cfc中包含模板和扩展模板之间的区别

Coldfusion 在cfc中包含模板和扩展模板之间的区别,coldfusion,coldfusion-9,cfwheels,Coldfusion,Coldfusion 9,Cfwheels,我认为应该扩展.cfc组件,但我正在阅读cfwheels框架源代码,其中我看到了如下内容: <cfcomponent output="false" displayName="Controller"> <cfinclude template="../wheels/controller.cfm"> </cfcomponent> 如上所述,扩展组件和包含模板之间有什么区别 还有,我应该记住哪些范围问题?我认为这完全取决于包含/扩展文件中的内容。这样做的一个

我认为应该扩展.cfc组件,但我正在阅读cfwheels框架源代码,其中我看到了如下内容:

<cfcomponent output="false" displayName="Controller">
    <cfinclude template="../wheels/controller.cfm">
</cfcomponent>
如上所述,扩展组件和包含模板之间有什么区别


还有,我应该记住哪些范围问题?

我认为这完全取决于包含/扩展文件中的内容。这样做的一个原因是,您无法将CFC扩展到低于当前级别can't do extend=../wheels/controller.cfm,因此这实际上只是直接代理文件。要扩展../wheels/controller.cfm,首先必须通过在本地目录proxy.cfc和cfc中创建新的cfc(包括其中的controller.cfm文件)来实际代理该文件。然后扩展proxy.cfc


在功能上,它们非常相似。从概念上讲,我想说,包含的cfm文件可能具有解决单个问题的特定功能,而扩展cfc文件可能是一个完全独立的功能块,恰好包含扩展类需要的行为

这是一种设计模式,称为:在面向对象编程语言中,mixin是一个类,它包含供其他类使用的方法,而不必是这些其他类的父类。[…]mixin有时被描述为包含而不是继承。就作用域而言,包含文件中的和函数仍应适当地设置var作用域,并且包含的函数可以访问它们所包含的对象。我猜另一件事是,您可以直接包含多个文件,但不能直接扩展多个文件。