0

我目前有我的模型和控制器cfc,通过代理组件扩展了一个cfc,它具有我的所有功能。这使得所有这些 UDF 在应用程序中随处可用。这样做是否存在安全或性能风险?我以面向对象的方式使用我的模型。像这样包含这些函数也使它们成为每个对象的一部分。具体来说,在单个页面请求中创建大量对象时会导致性能问题吗?

我在这个框架中使用 CF 9 和 10。

谢谢!

4

1 回答 1

2

我认为这与其说是安全/性能问题,不如说是……“坏”问题。;) CF,尤其是在 9 和 10,有非常快的表现,尤其是在第一击之后。我记得做了一些测试,包括 1000 个左右的 UDF,在最初的命中之后,它几乎是瞬时的。话虽如此,仅仅因为你可以做到并不意味着你应该这样做。Application.cfc 专门用于管理您的应用程序及其行为方式。您的模型/服务/控制器 CFC 不应扩展它们。扩展的正常规则是“A 是否通过了 B 的‘Is A’测试?” 并且您的 CFC 绝对不是“Is A”Application.cfc 类型。

我建议改为为您的实用程序函数创建一个 CFC。哎呀,称之为util.cfc。然后,如果您的模型或其他 CFC 需要这些功能,请通过 setter 将它们注入(像 ColdSpring 这样的东西可以使这更容易)。

于 2012-08-30T15:59:15.743 回答