我在应用程序的单个文件中有几个与逻辑相关的UDF。
问题是单个文件应该是CFC文件还是CFM文件?为什么?
我已经提到了以下几个链接,但是他们解释了如何实施解决方案。我只想知道哪一个更好 - CFM或CFC?
How do you organize your small reusable cffunctions?
http://blog.adamcameron.me/2012/07/which-is-better-having-your-methods.html
感谢您的帮助。
答案 0 :(得分:12)
“更好”是主观的。如果UDF集合都使用您需要在它们之间传递的相同数据,那么它们可能应该实现为CFC,因此可以拥有有状态对象,因此数据和方法可以封装在自己的内存空间中。
如果它们是纯粹的静态方法,那么包含的库文件可能没问题。
包含的UDF单独污染变量范围,而CFC实例中的函数通过一个对象变量访问,因此有点整洁。
如果CFML具有静态方法的概念,我总是使用CFC,但由于CFML 不具有静态方法,因此可以将函数库证明为以及CFCs。
个人:我总是使用CFC。它们看起来更有条理,更整洁。
答案 1 :(得分:2)
根据我的经验,我更喜欢CFC。考虑到大多数UDF只是实用程序帮助程序,因此它们只需要创建一次。将它们放在CFC中意味着您可以将它们加载到应用程序范围中并保留CFC实例。 UDF仅为您的应用程序创建一次。此外,您可以让其他CFC扩展此“实用程序”CFC,以便UDF也可以在那里使用。
现在使用CFM,只要您包含该模板,就会再次为该请求创建UDF。它是对真正不需要它的东西的额外处理。此外,已经提到的UDF污染变量范围的原因是偏好CFC的另一个重要原因。