>  기사  >  개발 도구  >  PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명

PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명

藏色散人
藏色散人앞으로
2022-12-29 17:36:433133검색

우리의 일상적인 개발에서는 코드 스타일을 통일하는 데 PHP CS Fixer가 꼭 필요하지만, PHP CS Fixer는 ESLint와 달리 저장 시 PHPStorm에서 자동으로 실행될 수 있습니다.

PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명

PHPStorm은 PHP CS Fixer를 실행할 수 있는 옵션을 제공하지 않으며 "코드를 다시 포맷하는 것"은 대부분의 경우 우리의 요구를 충족할 수 없습니다.


이를 위해 PHPStorm에 "파일 감시자"를 추가하여 코드 서식 지정을 자동으로 수행해야 합니다.

1. 먼저 PHP CS Fixer를 전역적으로 설치합니다.

composer global require friendsofphp/php-cs-fixer

2.

php-cs-fixer

PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명

를 실행합니다. 이는 설치가 성공했음을 의미합니다. 프롬프트 명령을 찾을 수 없으면 전역 작곡가 공급업체 디렉터리를 전역에 추가해야 합니다. 저는 zsh를 사용하고 있는데 이것을 여러분의 것으로 변경하세요.

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

3. PHPStorm을 열고, 사용자 정의 파일

PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명

프로그램 파일 주소를 추가하고, 명령줄 입력을 입력하고,

which php-cs-fixer

PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명

매개변수 표시줄을 입력하세요.

fix $FileDir$/$FileName$

그렇습니다. 이제 php-cs를 사용할 때마다 -fixer는 저장 시 자동으로 실행됩니다. 또 다른 문제가 있습니다. 프로젝트마다 다른 .php-cs.dist 형식 구성 파일이 있을 수 있습니다. 위 구성은 전역 php-cs-fixer 구성 파일을 사용합니다. 별도의 구성 파일을 사용하려면 다음과 같이 구성을 수정해야 합니다. .php-cs.dist 格式化配置文件,以上的配置是使用了全局 php-cs-fixer 配置文件,如果要使用单独的配置文件,需要修改配置如下:

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

.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);
.php-cs.dist는 일반적으로 프로젝트 루트 디렉터리에 위치합니다.

마지막으로 .php-cs.dist 구성 파일이 첨부되었습니다. rrreee

추천 연구: "🎜PHPstorm 사용법 튜토리얼🎜" 🎜

위 내용은 PHPStorm의 코드 서식 자동 실행에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제