【问题标题】:php-cs-fixer doesn't indent HTML inside PHP control structuresphp-cs-fixer 不会在 PHP 控制结构中缩进 HTML
【发布时间】:2021-11-21 20:32:58
【问题描述】:

我正在尝试将 php-cs-fixer 与 WordPress 项目一起使用,这意味着我(不幸的是)有混合了 PHP 和 HTML 的文件。我正在使用@PSR12 规则集。

我无法在 PHP 控制结构中正确缩进 HTML。以 sn-p 为例:

<?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 语句中缺少缩进会让我头疼。forwhile 语句也会发生同样的事情。

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

【问题讨论】:

    标签: php php-cs-fixer


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 2018-02-28
      • 2018-02-11
      • 2017-06-25
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多