在 cfc 中包含模板和扩展它之间的区别
Difference between including a template in cfc and extending it
我认为应该扩展 .cfc
组件,但我正在阅读 cfwheels
框架源代码,我在其中看到类似这样的内容:
<cfcomponent output="false" displayName="Controller">
<cfinclude template="../wheels/controller.cfm">
</cfcomponent>
像上面那样扩展组件和包含模板有什么区别?
此外,是否有任何我应该牢记的范围界定问题?
我认为这完全取决于 included/extended 文件中的内容。这可能是这种方式的一个原因是因为您不能将 CFC 扩展到当前级别以下(不能执行 extend="../wheels/controller.cfm") ,所以这实际上只是直接 "proxying" 文件。要扩展 "../wheels/controller.cfm,您首先必须通过在本地目录 (proxy.cfc) 中创建一个新的 cfc 并在其中包含 controller.cfm 文件来实际代理该文件. 然后扩展 proxy.cfc.
在功能上,它们非常相似。从概念上讲,我会说包含的 cfm 文件可能具有解决单个问题的特定功能,而扩展的 cfc 文件可能应该是一个完整的功能部件,它本身恰好具有扩展 class 需要的行为.
我认为应该扩展 .cfc
组件,但我正在阅读 cfwheels
框架源代码,我在其中看到类似这样的内容:
<cfcomponent output="false" displayName="Controller">
<cfinclude template="../wheels/controller.cfm">
</cfcomponent>
像上面那样扩展组件和包含模板有什么区别?
此外,是否有任何我应该牢记的范围界定问题?
我认为这完全取决于 included/extended 文件中的内容。这可能是这种方式的一个原因是因为您不能将 CFC 扩展到当前级别以下(不能执行 extend="../wheels/controller.cfm") ,所以这实际上只是直接 "proxying" 文件。要扩展 "../wheels/controller.cfm,您首先必须通过在本地目录 (proxy.cfc) 中创建一个新的 cfc 并在其中包含 controller.cfm 文件来实际代理该文件. 然后扩展 proxy.cfc.
在功能上,它们非常相似。从概念上讲,我会说包含的 cfm 文件可能具有解决单个问题的特定功能,而扩展的 cfc 文件可能应该是一个完整的功能部件,它本身恰好具有扩展 class 需要的行为.