我有一些常用的UDF和CFC,我想让所有控制器都可以使用它们。我正在使用Model-Glue 3.我想过几种方法:
<cfinclude>
的基本控制器并实例化CFC。所有其他控制器都继承自此控制器。ColdSpring.xml
将CFC转换为bean。然后使用beans
中的ModelGlue.xml
属性将其提供给控制器。onRequestStart
,它将实例化CFC并将它们存储在event
对象中。然后,控制器将通过直接从event
对象中获取CFC来访问它们。我的问题是,大多数人使用什么方法来为所有控制器提供一组通用的UDF和CFC?
答案 0 :(得分:3)
我会使用上面的选项2。
对于那些需要帮助方法的对象,我会使用DI将一个辅助对象注入其中。这将更加灵活。
我不喜欢所有助手的基础对象的想法。原因如下:
如果以后想要拆分多个CFC中的助手怎么办?你不能。根据您拥有的帮助功能的数量和可能增加的功能,这可能会使您的对象变得丑陋。如果有一天你有50个辅助函数怎么办?你真的希望你的控制器有50种额外的方法与他们的主要关注点无关。
关注点分离。控制器应该担心是控制器。他们不应该使用其他功能加载,以便他们知道如何格式化字符串。这应该由StringHelper或其他东西处理。
其他两个选项听起来不太好。什么是助手范围?