用PHP创建视图 - 最佳实践

use*_*820 8 php xhtml templates separation-of-concerns

我正在与其他2位开发人员合作开发一个网站.我只负责创建视图.

数据在一个对象中可用,我有读取数据然后创建XHTML页面的getters.

在不使用任何模板引擎的情况下,最佳做法是什么?

非常感谢.

kap*_*apa 11

如果您不想使用模板引擎,则可以使用PHP的基本模板功能.

实际上,您应该只编写HTML,并且每当需要输出变量的值时,打开PHP部分<?php并使用它来关闭它?>.我将假设$data您的数据对象是示例.

例如:

<div id="fos"><?php echo $data->getWhatever(); ?></div>
Run Code Online (Sandbox Code Playgroud)

请注意,所有的PHP控制结构(如if,foreach,while等),也有可用于模板语法.您可以在他们的PHP手册页中查看这些内容.

例如:

<div id="fos2">
<?php if ($data->getAnother() > 0) : ?>
    <span>X</span>
<?php else : ?>
    <span>Y</span>
<?php endif; ?>
</div>
Run Code Online (Sandbox Code Playgroud)

如果您知道将在服务器上启用短标记使用,为简单起见,您也可以使用它们(不建议使用XML和XHTML).使用短标签,您只需打开PHP部件<?并将其关闭即可?>.此外,<?=$var?>是回声的简写.

带有短标签的第一个例子:

<div id="fos"><?=$data->getWhatever()?></div>
Run Code Online (Sandbox Code Playgroud)

你应该知道你在哪里使用换行符和空格.浏览器将收到您编写的相同文本(PHP部分除外).我的意思是:

编写这段代码:

<?php
    echo '<img src="x.jpg" alt="" />';
    echo '<img src="y.jpg" alt="" />';
?>
Run Code Online (Sandbox Code Playgroud)

不等于这个:

<img src="x.jpg" alt="" />
<img src="y.jpg" alt="" />
Run Code Online (Sandbox Code Playgroud)

因为在第二个元素中,元素\n之间存在实际值img,浏览器将其作为空格字符进行转换,如果它们是内联的,则显示为图像之间的实际空间.