我目前有我的模型和控制器cfc通过代理组件扩展cfc,它具有我的所有功能。这使得所有这些UDF都可以在应用程序中随处使用。这样做有安全或性能风险吗?我以OO方式使用我的模型。包括这样的这些函数也使它们成为每个对象的一部分。具体而言,在单个页面请求中创建大量对象时是否会导致性能问题?
我正在使用CF 9和10这个框架。
谢谢!
答案 0 :(得分:2)
我认为这不是一个安全/性能问题,而是一个......“ick”关注。 ;)CF,特别是9和10,具有非常快的性能,特别是在第一次击中之后。我记得做过一些测试,包括一个1000左右的UDF,并且在最初的命中之后它几乎是瞬间完成的。话虽如此,仅仅因为你可以这样做并不意味着你应该这样做。 Application.cfc专门用于管理应用程序及其行为方式。您的型号/服务/控制器CFC应该不扩展它们。扩展的正常规则是“A是否通过'A'测试B?”而你的CFC绝对不是“是A”Application.cfc类型。
我建议的是为您的实用程序功能创建一个CFC。哎呀,称之为util.cfc。然后,如果您的模型或其他CFC需要这些函数,请通过setter注入它们(而像ColdSpring这样的东西可以使这更容易)。