Maison > outils de développement > phpstorm > Explication graphique détaillée de l'exécution automatique du formatage du code par PHPStorm

Explication graphique détaillée de l'exécution automatique du formatage du code par PHPStorm

藏色散人
Libérer: 2022-12-29 17:43:54
avant
3171 Les gens l'ont consulté

Dans notre développement quotidien, PHP CS Fixer est indispensable pour nous aider à unifier le style de code, mais PHP CS Fixer, contrairement à ESLint, peut être automatiquement exécuté dans PHPStorm lors de l'enregistrement.

Explication graphique détaillée de lexécution automatique du formatage du code par PHPStorm

PHPStorm ne nous offre pas la possibilité d'exécuter PHP CS Fixer, et "reformater le code" ne peut pas répondre à nos besoins la plupart du temps.


Pour cela, nous devons ajouter un "File Watcher" dans PHPStorm pour effectuer automatiquement le formatage du code.

1. Installez d'abord PHP CS Fixer globalement

composer global require friendsofphp/php-cs-fixer
Copier après la connexion

2. Exécutez

php-cs-fixer
Copier après la connexion

Explication graphique détaillée de lexécution automatique du formatage du code par PHPStorm

si la commande d'invite n'est pas trouvée, vous devez alors ajouter le répertoire global du fournisseur du compositeur au global. variable. J'utilise zsh, changez-la par la vôtre.

echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zshrc
Copier après la connexion

3. Ouvrez PHPStorm, ajoutez le fichier personnalisé

Explication graphique détaillée de lexécution automatique du formatage du code par PHPStorm

adresse du fichier de programme, entrée en ligne de commande et remplissez la barre de paramètres

which php-cs-fixer
Copier après la connexion

Explication graphique détaillée de lexécution automatique du formatage du code par PHPStorm

 :

fix $FileDir$/$FileName$
Copier après la connexion

C'est tout, maintenant, chaque fois que nous php-cs -fixer sera automatiquement exécuté lors de l'enregistrement. Il y a un autre problème. Chaque projet peut avoir un fichier de configuration de formatage .php-cs.dist différent. La configuration ci-dessus est utilisée dans le fichier de configuration global php-cs-fixer. . Si vous souhaitez utiliser un fichier de configuration distinct, vous devez modifier la configuration comme suit : .php-cs.dist 格式化配置文件,以上的配置是使用了全局 php-cs-fixer 配置文件,如果要使用单独的配置文件,需要修改配置如下:

fix --config=$ProjectFileDir$/.php-cs.dist $FileDir$/$FileName$
Copier après la connexion

.php-cs.dist 通常放在项目根目录。

最后附上 .php-cs.dist

<?php $header = <<<&#39;EOF&#39;EOF;$finder =  PhpCsFixer\Finder::create()
            ->exclude('tests/Fixtures')   //排除文件
            ->in(__DIR__);return PhpCsFixer\Config::create()
    ->setRiskyAllowed(true)
    ->setRules([
        '@PSR2'                                 => true,
        '@Symfony:risky'                        => true,
        'array_syntax'                          => ['syntax' => 'short'],
        'combine_consecutive_unsets'            => true,   //多个unset,合并成一个
        // one should use PHPUnit methods to set up expected exception instead of annotations
        'general_phpdoc_annotation_remove'      => ['expectedException', 'expectedExceptionMessage', 'expectedExceptionMessageRegExp'], //phpdocs中应该省略已经配置的注释
        //'header_comment'                        => array('header' => $header), //添加,替换或者删除 header 注释。
        'heredoc_to_nowdoc'                     => true,     //删除配置中多余的空行和/或者空行。
        'no_extra_consecutive_blank_lines'      => ['break', 'continue', 'extra', 'return', 'throw', 'use', 'parenthesis_brace_block', 'square_brace_block', 'curly_brace_block'],
        'no_unreachable_default_argument_value' => false, //在函数参数中,不能有默认值在非缺省值之前的参数。有风险
        'no_useless_else'                       => true,  //删除无用的eles
        'no_useless_return'                     => true,  //删除函数末尾无用的return
        'no_empty_phpdoc'                       => true,  // 删除空注释
        'no_empty_statement'                    => true,  //删除多余的分号
        'no_leading_namespace_whitespace'       => true,  //删除namespace声明行包含前导空格
        'no_spaces_inside_parenthesis'          => true,  //删除括号后内两端的空格
        'no_trailing_whitespace'                => true,  //删除非空白行末尾的空白
        'no_unused_imports'                     => true,  //删除未使用的use语句
        'no_whitespace_before_comma_in_array'   => true,  //删除数组声明中,每个逗号前的空格
        'no_whitespace_in_blank_line'           => true,  //删除空白行末尾的空白
        'ordered_class_elements'                => false, //class elements排序
        'ordered_imports'                       => false, // use 排序
        'phpdoc_add_missing_param_annotation'   => true,   //添加缺少的 Phpdoc @param参数
        'phpdoc_trim'                           => true,
        //   'phpdoc_trim_consecutive_blank_line_separation' => true, //删除在摘要之后和PHPDoc中的描述之后,多余的空行。
        'phpdoc_order'                          => true,
        'psr4'                                  => true,
        // 'strict_comparison'                     => true,   //严格比较,会修改代码有风险
        //'strict_param'                          => true,
        'ternary_operator_spaces'               => true,  //标准化三元运算的格式
        'ternary_to_null_coalescing'            => true,  //尽可能使用null合并运算符??。需要PHP> = 7.0。
        'whitespace_after_comma_in_array'       => true, // 在数组声明中,每个逗号后必须有一个空格
        'trim_array_spaces'                     => true,  //删除数组首或尾随单行空格
        'align_multiline_comment'               => [                   //每行多行 DocComments 必须有一个星号(PSR-5),并且必须与第一行对齐。
            'comment_type' => 'phpdocs_only'
        ],
        'array_indentation'                 => true,  //数组的每个元素必须缩进一次
    ])
    ->setFinder($finder);
Copier après la connexion
.php-cs.dist est généralement placé dans le répertoire racine du projet.

Enfin ci-joint le fichier de configuration .php-cs.dist rrreee

Etude recommandée : "🎜Tutoriel d'utilisation de PHPstorm🎜" 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal