我在徘徊..如果我必须构建一个菜单,或者说,一组基于产品数据数组的规格表..换句话说,如果我必须渲染一个数组,什么更好(来自性能观点):
一个。在 php 中构建所有 html(比如在控制器中)并将我保存 html 的变量传递给 smarty
湾。在 php 中什么都不做,将数组传递给 smarty 并在模板中构建相关的 html?
我在徘徊..如果我必须构建一个菜单,或者说,一组基于产品数据数组的规格表..换句话说,如果我必须渲染一个数组,什么更好(来自性能观点):
一个。在 php 中构建所有 html(比如在控制器中)并将我保存 html 的变量传递给 smarty
湾。在 php 中什么都不做,将数组传递给 smarty 并在模板中构建相关的 html?
Smarty 模板在第一次被处理时就被编译成 PHP 代码,所以除非你在做一些特别奇特的处理,这些处理很难用 Smarty 语法表达,否则性能很可能会非常相似。
这个问题听起来也很像“过早的优化”:您事先假设某事可能是性能问题,并在获得任何可衡量的结果之前花费精力“优化”它。当您实际上需要测量一些性能并且可以找到代码的哪些部分可以给您带来最大的改进时,这些能量会更好地保存下来。
无论是您的选择还是您正在使用的应用程序,像 Smarty 这样的模板语言的想法是它包含您所有的显示逻辑,因此将显示逻辑移动到“控制器”中(这大概也是一个“视图“在 MVC 的思维方式中)打败了分离的观点。
如果你真的讨厌 Smarty,你可能会编写自己的“视图”层,它将所有输出预处理为 HTML,并将单个变量传递给 Smarty 模板,但我不确定这就是你所追求的。