Rumah  >  Artikel  >  alat pembangunan  >  Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik

Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik

藏色散人
藏色散人ke hadapan
2022-12-29 17:36:433121semak imbas

Dalam pembangunan harian kami, PHP CS Fixer sangat diperlukan untuk membantu kami menyatukan gaya kod kami, bagaimanapun, PHP CS Fixer, tidak seperti ESLint, boleh dilaksanakan secara automatik dalam PHPStorm apabila menyimpan.

Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik

PHPStorm tidak memberikan kami pilihan untuk melaksanakan PHP CS Fixer dan "kod pemformatan semula" tidak dapat memenuhi keperluan kami pada kebanyakan masa.


Untuk ini kita perlu menambah "File Watcher" dalam PHPStorm untuk melaksanakan pemformatan kod secara automatik.

1. Mula-mula pasang PHP CS Fixer secara global

composer global require friendsofphp/php-cs-fixer

2 Laksanakan

php-cs-fixer

Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik

bermakna pemasangan berjaya. Jika Jika arahan segera tidak ditemui, maka anda perlu menambah direktori vendor komposer global kepada pembolehubah global yang saya gunakan zsh, tukar di sini kepada anda sendiri.

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

3. Buka PHPStorm, tambah fail tersuai

Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik

alamat fail program, masukkan baris arahan dan isikan

which php-cs-fixer

Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik

Bar parameter:

fix $FileDir$/$FileName$

Itu sahaja, sekarang php-cs-fixer akan dilaksanakan secara automatik setiap kali kita menyimpan, dan kini terdapat satu lagi Masalahnya ialah setiap projek mungkin mempunyai fail konfigurasi berformat .php-cs.dist Konfigurasi di atas menggunakan fail konfigurasi php-cs-fixer global Jika anda ingin menggunakan fail konfigurasi yang berasingan, anda perlu mengubah suai konfigurasi seperti berikut:

fix --config=$ProjectFileDir$/.php-cs.dist $FileDir$/$FileName$

.php-cs.dist biasanya diletakkan dalam direktori akar projek.

Akhir sekali dilampirkan ialah .php-cs.dist fail konfigurasi

<?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);

Kajian yang disyorkan: "Tutorial penggunaan PHPstorm"

Atas ialah kandungan terperinci Penjelasan grafik terperinci tentang pelaksanaan pemformatan kod PHPStorm secara automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam