我正在使用Smarty和PHP语法创建一个网站;我已经学会了PHP代码可以在http://www.smarty.net/docs/en/language.function.php.tpl
的Smarty中使用然而,这是一个好主意 - 将Smarty语法与PHP编码混合在一起吗?
我还在编辑文档,所以还没有代码;所有建议都表示赞赏。
答案 0 :(得分:2)
我不会混用这两种语法:要么使用你的模板引擎,要么不要使用它......但不要混用两种语法!
模板引擎的目标之一是让html-guys学习它,而不是PHP - 如果你把它们混合在一起,那么,那个目标就失败了。
如果你想在模板中使用PHP,你可以将PHP作为模板引擎,毕竟: - )
重要的是(无论你使用PHP还是其他可能的模板引擎)都要记住(模板,在你的情况下)的视图是演示,而非逻辑。
答案 1 :(得分:1)
您通常应该尝试在PHP文件中执行所有服务器端工作,并分配输出以便稍后在模板文件中使用。最好将业务和表示逻辑分离,并将它们分别保存在各自的区域中。
答案 2 :(得分:1)
Smarty显示由PHP构建的数据。如果您需要灵活的设计,那么与值/对象的显示严格相关的任何事情都应该在模板中。因此,如果您更改显示内容的方式,PHP不会进行不必要的计算。因此,总而言之,将与显示相关的内容移动到PHP代码是一个坏主意。
好消息是有很多方法可以不在模板中包含原始PHP代码。您可以构建专门为各种任务设计的自定义函数,修饰符甚至控件。如果它有意义(似乎可重复使用),您还可以传递显示相关功能的对象。
更新:请注意,此答案与其他答案不同,它不建议将这些功能移至PHP。只有这样做,如果它与数据的显示无关,无论你如何构建你的布局以及你选择显示数据的表示,都必须这样做。
答案 3 :(得分:0)
不,这不是个好主意。 Smarty本身并没有给出一个该死的 - 它无论如何都会将模板编译成PHP - 但你会把你的头发拉出来,因为你的页面会变成一堆只写的意大利面条代码。 (在那里,完成了)
Smarty的存在是为了将您的模板从PHP代码中抽象出来,因此您可以将它们保持分离。如果你坚持再把它们混合起来 - 好吧,不妨用原始PHP代码,对吗? (提示:这是一个更糟糕的想法)
答案 4 :(得分:0)
不,这不是一个好主意。 smarty模板的目标是让不懂php的人轻松更新标记,而无需学习php本身。所以在这种情况下,如果你觉得需要在模板中添加php代码,你应该问自己是否绝对必须在模板中,并且不能放入模板的逻辑中。
保持业务逻辑并单独显示。