我正在尝试将 php-cs-fixer 与 WordPress 项目一起使用,这意味着我(不幸的是)有混合了 PHP 和 HTML 的文件。我正在使用@PSR12 规则集。
我无法在 PHP 控制结构中正确缩进 HTML。以这个示例片段为例:
<?php if (!empty($related_posts)) : ?>
<div class="module--related_posts alignfull has-2-columns has-hover-state slider-on-mobile">
<h3 class="has-text-align-center">Related <?= esc_html($title) ?></h3>
</div>
<?php endif ?>
php-cs-fixer 将其重新格式化为:
<?php if (!empty($related_posts)) : ?>
<div class="module--related_posts alignfull has-2-columns has-hover-state slider-on-mobile">
<h3 class="has-text-align-center">Related <?= esc_html($title) ?>
</h3>
</div>
<?php endif ?>
请注意,结束h3
标记已移至新行,并且if
语句正文中的第一级缩进已被删除。
我可以忍受的h3
问题,因为如果我将开始标签放在自己的行上,这将得到解决:
<h3 class="has-text-align-center">
Related <?= esc_html($title) ?>
</h3>
...但是语句中缺少缩进会让if
我陷入困境。同样的事情也会发生在for
andwhile
语句中。
php-cs-fixer 中是否有一条我忽略的规则可以解决这个问题?