Detaillierte grafische Erläuterung der automatischen Ausführung der Codeformatierung durch PHPStorm

藏色散人
Freigeben: 2022-12-29 17:43:54
nach vorne
3054 Leute haben es durchsucht

In unserer täglichen Entwicklung ist PHP CS Fixer unverzichtbar, um uns bei der Vereinheitlichung des Codestils zu helfen, aber PHP CS Fixer kann im Gegensatz zu ESLint beim Speichern automatisch in PHPStorm ausgeführt werden.

Detaillierte grafische Erläuterung der automatischen Ausführung der Codeformatierung durch PHPStorm

PHPStorm bietet uns nicht die Möglichkeit, den PHP CS Fixer auszuführen, und die „Neuformatierung des Codes“ kann unsere Anforderungen in den meisten Fällen nicht erfüllen.


Dazu müssen wir in PHPStorm einen „File Watcher“ hinzufügen, um die Codeformatierung automatisch durchzuführen.

1. Installieren Sie zuerst PHP CS Fixer

composer global require friendsofphp/php-cs-fixer
Nach dem Login kopieren

Detaillierte grafische Erläuterung der automatischen Ausführung der Codeformatierung durch PHPStorm. Wenn der Eingabeaufforderungsbefehl nicht gefunden wird, müssen Sie das globale Composer-Anbieterverzeichnis hinzufügen Variable. Ich verwende zsh, ändere dies in deine eigene.

php-cs-fixer
Nach dem Login kopieren

3. Öffnen Sie PHPStorm, fügen Sie die benutzerdefinierte Datei

Detaillierte grafische Erläuterung der automatischen Ausführung der Codeformatierung durch PHPStormProgrammdateiadresse und Befehlszeileneingabe hinzu und füllen Sie die

echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zshrc
Nach dem Login kopieren

Detaillierte grafische Erläuterung der automatischen Ausführung der Codeformatierung durch PHPStormParameterleiste aus:

which php-cs-fixer
Nach dem Login kopieren

Das war's, jetzt wann immer wir PHP-CS verwenden -fixer wird beim Speichern automatisch ausgeführt. Jedes Projekt verfügt möglicherweise über eine andere Formatierungskonfigurationsdatei. Die obige Konfiguration wird als globale php-cs-fixer-Konfigurationsdatei verwendet . Wenn Sie eine separate Konfigurationsdatei verwenden möchten, müssen Sie die Konfiguration wie folgt ändern:

fix $FileDir$/$FileName$
Nach dem Login kopieren

.php-cs.dist wird normalerweise im Projektstammverzeichnis abgelegt. .php-cs.dist 格式化配置文件,以上的配置是使用了全局 php-cs-fixer 配置文件,如果要使用单独的配置文件,需要修改配置如下:

fix --config=$ProjectFileDir$/.php-cs.dist $FileDir$/$FileName$
Nach dem Login kopieren

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

最后附上 .php-cs.dist

Schließlich ist die Konfigurationsdatei .php-cs.dist beigefügt.

<?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);
Nach dem Login kopieren
Empfohlene Studie: „PHPstorm-Nutzungsanleitung“ 🎜

Das obige ist der detaillierte Inhalt vonDetaillierte grafische Erläuterung der automatischen Ausführung der Codeformatierung durch PHPStorm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!