在ColdFusion Model-Glue控制器中包含UDF / CFC的最佳方法是什么?

时间:2011-09-18 20:42:10

标签: coldfusion controller user-defined-functions coldfusion-9 model-glue

我有一些常用的UDF和CFC,我想让所有控制器都可以使用它们。我正在使用Model-Glue 3.我想过几种方法:

  1. 创建一个对UDF具有<cfinclude>的基本控制器并实例化CFC。所有其他控制器都继承自此控制器。
  2. 将所有UDF转换为CFC,并使用ColdSpring.xml将CFC转换为bean。然后使用beans中的ModelGlue.xml属性将其提供给控制器。
  3. 将UDF和CFC存储在helpers文件夹中,并使用帮助程序范围访问它们。但是,这看起来似乎是由视图而不是控制器使用。
  4. 创建一个全局onRequestStart,它将实例化CFC并将它们存储在event对象中。然后,控制器将通过直接从event对象中获取CFC来访问它们。
  5. 我的问题是,大多数人使用什么方法来为所有控制器提供一组通用的UDF和CFC?

1 个答案:

答案 0 :(得分:3)

我会使用上面的选项2。

对于那些需要帮助方法的对象,我会使用DI将一个辅助对象注入其中。这将更加灵活。

我不喜欢所有助手的基础对象的想法。原因如下:

  1. 如果以后想要拆分多个CFC中的助手怎么办?你不能。根据您拥有的帮助功能的数量和可能增加的功能,这可能会使您的对象变得丑陋。如果有一天你有50个辅助函数怎么办?你真的希望你的控制器有50种额外的方法与他们的主要关注点无关。

  2. 关注点分离。控制器应该担心是控制器。他们不应该使用其他功能加载,以便他们知道如何格式化字符串。这应该由StringHelper或其他东西处理。

  3. 其他两个选项听起来不太好。什么是助手范围?