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

Ada*_*mes 18 html php formatting

我一直在设计网站一段时间,但有一件事我在使用PHP和HTML时从未确定过.用PHP和echoHTML这样的整个文档更好吗:

<?php
  doSomething();
  echo "<div id=\"some_div\">Content</div>";
?>
Run Code Online (Sandbox Code Playgroud)

或者像这样的HTML文件,只需添加PHP:

<html>
<body>
  <?php doSomething(); ?>
  <div id="some_div">Content</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

Pek*_*ica 25

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

  • 使用像Smarty这样的模板引擎可以完全分离代码和表示.

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

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

大多数成熟的应用程序框架都有自己的风格; 在这种情况下,通常最好遵循提供的风格.


sho*_*ger 11

我认为这取决于你的团队或你自己的决定.它可以而且应该根据您正在使用的文件类型而有所不同.如果您遵循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>
Run Code Online (Sandbox Code Playgroud)

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

现在,如果您正在生成某种具有输出的类(它实际上不应该),那么您将回显HTML或从被调用的方法返回它.优选地将其返回,以便无论何时实施者想要它都可以输出.