HTML 属性和 PHP - 在冲突原则之间划清界限


HTML attributes and PHP - where to draw the line between conflicting principles

我有一个HTML文件,其中包含两个这样的选项卡(除了许多其他东西):

<div id="tabs">
    <div id="tab1" class="">Tab 1</div>
    <div id="tab2" class="">Tab 2</div>
</div>
这个HTML文件

在多个上下文中使用,所以为了不违反不要重复原则,我有一个HTML文件包含在PHP中似乎是合理的。

根据各种条件,这些选项卡在页面加载时需要具有不同的类。这是通过 PHP 实现的,要么

$tab1Class = 'active';
$tab2Class = 'inactive';

$tab1Class = 'inactive';
$tab2Class = 'active';

使用这个混合的 HTML 和 PHP:

<div id="tabs">
    <div id="tab1" class="<?php echo $tab1Class;?>">Tab 1</div>
    <div id="tab2" class="<?php echo $tab2Class;?>">Tab 2</div>
</div>

我的问题是,当必须在重复代码或将 PHP 插入 HTML 文件之间取得平衡时,什么被认为是最佳实践 - 可以重复多少,埋藏 PHP 片段可以深入 HTML ?

例如,以下分离程度是否更好?PHP并没有那么深地埋藏在HTML中,但是为了每次都生成div元素,我必须在PHP文件中重复更多的代码。

<div id="tabs">
    <?php echo $tabs;?>
</div>

我知道一个可能的答案是,这是必须为每个案例单独决定的事情,但如果有任何原则或多或少被普遍接受,很高兴听到它们。

恕我直言,第一种方法是只打印 css 类更好。如果你想把它提升到一个新的水平,考虑使用一些模板引擎,比如Smarty或Twig。这样,您就可以将逻辑(代码)与演示文稿完全区分开来。