使用 PHP 和 HTML 时要使用的最佳实践是什么?

2022-08-30 18:58:29

我已经设计网站一段时间了,但是有一件事是我在使用PHP和HTML时从未确定的。像这样用PHP和HTML格式保存整个文档会更好吗:echo

<?php
  doSomething();
  echo "<div id=\"some_div\">Content</div>";
?>

或者有一个这样的HTML文件,然后添加PHP:

<html>
<body>
  <?php doSomething(); ?>
  <div id="some_div">Content</div>
</body>
</html>

它似乎对HTML更整洁,特别是如果在整个页面中使用大量PHP,但这样做会丢失HTML的所有格式,即IDE中的颜色等。echo


答案 1

对此有不同的看法。我认为有两种好方法:

  • 使用像 Smarty 这样的模板引擎,将代码和表示完全分开。

  • 使用第二个示例,但是当将PHP混合到HTML中时,仅输出变量。在输出任何内容或单独的文件之前,在一个块中执行所有代码逻辑。这样:

    <?php $content = doSomething();
       // complex calculations
    ?>
    <html>
    <body>
      <?php echo $content; ?>       
      <div id="some_div">Content</div>
    </body>
    </html>
    

大多数成熟的应用程序框架都带来了自己的风格。在这种情况下,通常最好遵循提供的样式。


答案 2

我认为这将取决于你的小组或你自己决定的惯例。它可以而且应该根据您正在处理的文件类型而有所不同。如果您遵循MVC模式,那么您的观点应该是后者。如果你正在编写一个类或一些非输出脚本/代码,那么你应该使用前者。

尝试将输出的显示或格式与提供数据的逻辑分开。例如,假设您需要创建一个运行简单查询并输出一些数据的快速页面。在这种情况下(没有其他现有的基础结构或框架),您可以将逻辑放在包含中,或者放在文件的顶部或底部。例:

<?php
  # define some functions here that provide data in a raw format
?>
<html>
<body>
  <?php foreach($foo = data_function($some_parameter) as $key => $value): ?>
  <p>
    <?=$value;?>
  </p>
  <?php endforeach; ?>
</body>
</html>

或者,您可以将逻辑和函数定义放在包含文件中或文件底部。

现在,如果您正在生成某种具有输出的类(实际上不应该),那么您将回显HTML或从被调用的方法返回它。最好返回它,以便它可以在实现者希望的任何时间和任何方式输出。


推荐