应该在哪里放置"全球"Symfony功能?

Jer*_*man 8 php symfony1

放置在多个MVC层中使用的函数的最佳实践是什么?

我最近不得不编写一些在View和Model中使用的统计函数.如果我把它们放在帮助器中,我就会在模型层中加载助手,这很烦人,似乎不正确,并且当从任务调用这些函数时会完全中断(因为没有默认上下文).如果我将它们放在顶级lib目录中,我就会像Stats::normalPercentile在视图中那样进行调用.

还有其他选择吗?Symfony开发者是否有任何关于应该放置这些功能的评论?

编辑:显然在视图中进行静态调用没有问题.我推断这是基于Symfony没有将他们的助手编写为类(即使经过重要的讨论.)在这种情况下,是否有任何约定放置文件的约定?把它们扔进去lib/util

Rai*_*ise 7

关于你的编辑,symfony的帮助程序是这样编写的,以避免使用通常与小PHP接触的技术人员不熟悉的语法混淆视图 - 函数是'vanilla'PHP中的一等公民.这是一个源自Ruby on Rails的哲学,它激发了框架的这一部分.

存储文件lib/是个人偏好,因为symfony并不介意,但命名法会暗示lib/vendor/yourname.

如果它是好的代码,你可能想在那个小yourname目录中嫉妒地保护它...如果它是非常好的代码,你可能想要打包并与其他人分享 :)