1

我正在尝试将 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我陷入困境。同样的事情也会发生在forandwhile语句中。

php-cs-fixer 中是否有一条我忽略的规则可以解决这个问题?

4

1 回答 1

0

不是一个真正的答案,但我最终只是切换到 PHP_CodeSniffer 来解决这个问题。

于 2021-11-28T11:49:40.577 回答