gpt4 book ai didi

php - PHP 中的模板制作正确...如何?

转载 作者:行者123 更新时间:2023-11-28 04:41:50 25 4
gpt4 key购买 nike

几年前,我用 PHP 创建了一个小网站,现在已经发展壮大,您可能猜到它有点乱。尽管我确实有一个单独的模板来完成 html 的最终输出,但我最终还是不得不在代码的“业务逻辑”部分处理大量 html。

我的主要问题是该页面包含各种小部件(如“最新条目”、广告等),这些小部件在页面之间发生变化,因此它们的 html-(模板-)代码不能硬编码到模板中。事实上,即使是主要内容容器也是一个小部件,因为页面结构(或布局)始终相同。

所以我最终得到了一个包含 $templateData['mainContent']、$templateData['widget1']、$templateData['widget2'] 等的数组,它是在代码的业务逻辑部分生成的。

我该如何解决?

环顾四周似乎有两种方法可以解决这个问题:

  1. 显而易见的方法是使用具有继承和包含功能的专用模板语言,就像 django 所做的那样,但考虑到这些语言的复杂程度,我不太愿意再学习其中的一种。另外,在我使用 django 期间,我注意到它并不是特别快(尤其是因为它也诱使人们将该模板用于 css 和 javascript)。

  2. 另一种选择是使用 PHP 本身提供的模板功能。但这意味着每个小部件都有自己的 php 模板,并通过包含模板文件生成其 html 代码,并使用输出缓冲捕获结果。这是一个好主意吗?因为我仍然在逻辑部分的变量中得到 HTML。另外,这种滥用输出缓冲不是为了它不打算用于的东西吗?那性能呢? (我正在写入/读取/刷新的缓冲区在哪里?调用 ob_* 函数的开销有多大?)

据我所知,两种变体都有拥护者。我个人更喜欢选项 2(因为这是我已经在做的事情),但是 html-in-variables 感觉很不对,我怀疑我是否会用这种方式解决任何问题。

还有其他选择吗?你是如何解决这个问题的?

最佳答案

为什么不让每个小部件只包含它的模板?
因此,您只需从主模板调用小部件即可。

关于php - PHP 中的模板制作正确...如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com