сухой — атрибуты HTML и где провести черту между противоречащими принципами

У меня есть 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 — насколько хорошо повторение и насколько глубоко в HTML можно скрывать фрагменты PHP?

Например, лучше ли следующая степень разделения? PHP не настолько глубоко погружен в HTML, но есть еще код, который я должен повторить в файлах PHP, чтобы сгенерировать div элементы каждый раз.

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

Я понимаю, что один из возможных ответов заключается в том, что это то, что нужно решать для каждого случая индивидуально, но если есть какие-либо принципы, которые являются более или менее общепринятыми, было бы неплохо услышать о них.

1

Решение

ИМХО первый подход, где вы печатаете только классы CSS лучше. Если вы хотите вывести это на новый уровень, подумайте об использовании некоторого шаблонизатора, такого как Smarty или Twig. Таким образом, вы можете полностью отличить свою логику (код) от вашей презентации.

1

Другие решения

Других решений пока нет …