jadu/twig-style

Jadu Twig编码风格配置用于Twig-CS-Fixer

1.0.0 2024-02-19 17:20 UTC

This package is auto-updated.

Last update: 2024-09-20 10:02:16 UTC


README

Jadu Twig风格由Twig-CS-Fixer提供支持。

安装

  1. 需要jadu/twig-style开发依赖
composer require --dev jadu/twig-style
  1. 添加twig-cs-fixer配置文件.twig-cs-fixer.php
<?php

use Jadu\Style\Twig\Standard\JaduStandard;
use TwigCsFixer\Config\Config;
use TwigCsFixer\File\Finder;
use TwigCsFixer\Ruleset\Ruleset;

$finder = Finder::create()
    ->in(__DIR__ . '/src')
    ->ignoreVCSIgnored(true);

$config = new Config();
$config->setFinder($finder);

$ruleset = new Ruleset();
$ruleset->addStandard(new JaduStandard());
$config->setRuleset($ruleset);

return $config;
  1. .twig-cs-fixer.cache添加到项目的.gitignore文件中。

使用方法

dry run(干燥运行)

要检查项目的twig文件,运行以下干燥运行命令

vendor/bin/twig-cs-fixer lint

此命令将返回一个包含twig-cs-fixer违规的列表,建议用于构建任务。

修复

要修复任何报告的可修复违规,请运行以下修复命令

vendor/bin/twig-cs-fixer lint --fix

Jadu Twig编码标准规则

本标准基于官方Twig编码标准,并添加以下修改

块间距和新行

块标签之前必须有一行新行,块标签之后也必须有一行新行。

{% block aside %}
    <div class="aside">

        {% block aside_inner %}

            {% block before_primary_supplements %}
            {% endblock %}

            {% block primary_supplements %}
            {% endblock %}

            {% block after_primary_supplements %}
            {% endblock %}

        {% endblock %}

    </div>
{% endblock %}

以下例外情况适用

  • 允许内联块。

    <body class="{% block body_classes %}{{ bodyClasses }}{% endblock %}">
  • 允许在块标签上方一行上的注释。

    {# This block adds a container around the aside #}
    {% block aside_container %}

Endblock名称

任何endblock标签之后都必须跟它们关闭的块名称。

{% block aside_container %}
{% endblock aside_container %}

不允许无空格标签

spaceless标签在Twig 1.38和2.7.3中被弃用1,并引入了等效的spaceless过滤器。使用spaceless标签的情况必须替换为等效的apply spaceless过滤器。

{% apply spaceless %}
{% endapply %}

标点符号间距

在hash的打开和关闭之前和之后需要一个空格。

{{ { 'foo': 'bar', 'baz': 'qux' } }}

以下例外情况适用

  • 空hash不得包含任何空白。
{% set emptyHash = {} %}

变量名

不强制执行变量命名约定。

开发

Jadu\Style\Twig\Rule\Development命名空间中提供的规则是为了开发目的,有助于维护Jadu Twig风格。

您需要更新项目的twig-cs-fixer配置文件.twig-cs-fixer.php以启用这些规则,因为默认情况下禁用非可修复规则。

<?php

use Jadu\Style\Twig\Rule\Development\TokenTypeRule;
use TwigCsFixer\Config\Config;
use TwigCsFixer\File\Finder;
use TwigCsFixer\Ruleset\Ruleset;

$finder = Finder::create()
    ->in(__DIR__ . '/src')
    ->ignoreVCSIgnored(true);

$config = new Config();
$config->setFinder($finder);

$ruleset = new Ruleset();
$ruleset->addRule(new TokenTypeRule());
$config->setRuleset($ruleset);

$config->allowNonFixableRules();

return $config;
  • TokenTypeRule通过将令牌类型映射到值,帮助您了解Twig-CS-Fixer如何对twig模板进行令牌化。