PHP CodeSnier 가져오기 방법

16678 단어 LaravelPHPpsr2tech
Laavel은 PSR-2를 코딩 규약으로 권장합니다.
Contribution Guide
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
뭐, 아주 섬세하게 썼네.
  • 4자로 축소
  • 1줄 80자 이하
  • namespace 선언 후 한 줄의 공백 줄을 설정해야 한다
  • 클래스의 시작 중 괄호가 다음 줄로 이동
  • 방법의 시작 중괄호를 다음 줄로 이동
  • PHP 파일 줄 바꿈 LF
  • PHP 파일은 빈 줄로 끝납니다(이 외에도 완성할 수 없는 파일이 많습니다...).
  • 이러한 문건을 준수하는 예는 다음과 같다.
    <?php
    namespace Vendor\Package;
    
    use FooInterface;
    use BarClass as Bar;
    use OtherVendor\OtherPackage\BazClass;
    
    class Foo extends Bar implements FooInterface
    {
        public function sampleMethod($a, $b = null)
        {
            if ($a === $b) {
                bar();
            } elseif ($a > $b) {
                $foo->bar($arg1);
            } else {
                BazClass::bar($arg2, $arg3);
            }
        }
    
        final public static function bar()
        {
            // method body
        }
    }
    
    
    정직 {}과 같은 위치에 대해서는 다음과 같은 상황에서 자동성형을 희망합니다.
        final public static function bar(){
            // method body
        }
    
    따라서 이번 PSR-2의 인코딩 규약을 실시하기 위한 인코딩은 VS코드에 인코딩 규약의 확장 기능을 검사하는 가져오는 방법을 명확하게 기재하였다.
    PHP_코드스니어 검사는 패키지로 할 수 있지만, 이번 베스코드의 확장 기능도 준비돼 있어 그걸로 하기로 했다.

    PHP CodeSnier란


    PHP_CodeSnier는 두 개의 PHP 스크립트를 설정합니다.
  • 정의된 인코딩 표준을 위반한 phpcs 스크립트를 검출하는 데 사용
  • 인코딩 표준을 위반한 phpcbf 스크립트를 자동으로 수정하는 데 사용
  • 코드 검사 도구로'phpcs'와'php cs fixer'가 유명하다.
  • phpcs 인코더 8680; 인코딩 규약 검사 도구
  • php csfixer 인코딩 규정에 따라 자동 성형하는 도구
  • 그래서 이번에 "php cs fixer"를 가져왔습니다.
    이번 코드 검사는 확장 기능으로 실시할 수 있다.
    단, 확장 기능을 사용하기 위해서는 호스트에'php cs fixer'를 설치해야 합니다.

    php cs fixer 가져오기 방법


    compooser 명령을 사용하여 php-cs-fixer를 설치합니다.
    composer require --dev friendsofphp/php-cs-fixer
    
    composer.json에 로그인한 경우 아래 명령만 있으면 됩니다.
    composer install
    
    이후 정상적으로 설치되었는지 확인하기 위해 아래 명령을 클릭하여 버전이 표시되는지 확인하세요.
    $ ./vendor/bin/php-cs-fixer --version
    PHP CS Fixer 3.0.0 Constitution by Fabien Potencier and Dariusz Ruminski
    

    성형 설정 파일 생성하기


    php-cs-fixer는 세밀한 설정을 하지 않아도 성형을 할 수 있지만 성형 방법도 세밀한 맞춤형을 할 수 있다.
    성형 설정을 당신이 좋아하는 것으로 만들려면 먼저 .php_cs.dist라는 이름으로 성형 규칙 설정 파일을 만듭니다.
    ※.php_cs.디스트php_cs 파일 두 개가 있다면php_cs 우선 불러옵니다.
    .php_cs.dist는 팀 공유입니다.php_cs는 개발자 개인의 물건으로도 사용할 수 있습니다.
    (.php cs gitignore 때문에 Giit에 제출되지 마십시오.)
    다음은 설정 파일입니다.
    <?php declare(strict_types=1);
    
    $finder = PhpCsFixer\Finder::create()
        ->in([
            __DIR__ . '/app',
            __DIR__ . '/config',
            __DIR__ . '/database/factories',
            __DIR__ . '/database/seeds',
            __DIR__ . '/routes',
            __DIR__ . '/tests',
        ]);
    
    $config = new PhpCsFixer\Config();
    
    return $config
        ->setRiskyAllowed(true)
        ->setRules([
    				'@PSR2' => true,
            'blank_line_after_opening_tag' => false,
            'linebreak_after_opening_tag' => false,
            'declare_strict_types' => false,
            'phpdoc_types_order' => [
                'null_adjustment' => 'always_last',
                'sort_algorithm' => 'none',
            ],
            'no_superfluous_phpdoc_tags' => false,
            'global_namespace_import' => [
                'import_classes' => true,
                'import_constants' => true,
                'import_functions' => true,
            ],
            'php_unit_test_case_static_method_calls' => [
                'call_type' => 'this'
            ],
            'phpdoc_align' => [
                'align' => 'left',
            ],
            'not_operator_with_successor_space' => true,
        ])
        ->setFinder($finder);
    
    '@PSR2' => true, 대체'@PhpCsFixer:risky' => true 문헌도 있습니다.
    단, PhpCsFixer:riskyphp 버전 8에서는 움직이지 않습니다.
    파일 설정에 관해서는 아래의 도구를 사용하면 개인의 취향에 따라 설정할 수 있다.
    추가할 규칙 프리셋 및 규칙을 선택하면 설정 파일이 작성됩니다.
    PHP-CS-Fixer Configurator
    또한 코드가 성형되면 파일.php-cs-fixer.cache이 생성된다.
    이 파일은 Git 관리 범위에 있지 않으니 .gitignore 에 추가하세요.
    .php-cs-fixer.cache
    

    정형을 실시하다


    php-cs-fixer가 준비되어 있기 때문에 여기서부터 실제 성형을 시작합니다.
    PHP_코드스니어 검사에 따르면 성형을 하지 않았기 때문에 오류가 있을 수 있다.
    ./vendor/bin/phpcs --report=summary .
    
    다음 명령을 통해 정형할 파일의 내용을 확인할 수 있다.(이때 드라이런 때문에 실제로 성형 수정을 하지 않았다)
    # dry run
    $ ./vendor/bin/php-cs-fixer fix -v --diff --dry-run
    
    실제 성형을 할 때 선택할 수 있는 --dry-run을 넣지 않고 명령을 실행한다.
    # fix
    $ ./vendor/bin/php-cs-fixer fix -v --diff
    
    다시 PHPCodeSniffier 검사에서 오류가 발생하지 않았는지 확인합니다.
    ./vendor/bin/phpcs --report=summary .
    

    확장된 가져오기 방법


    라벨 측 영입이 끝났기 때문에 이번에 VS코드가 도입됐다.

    설치하다.


    VScode의 확장 설치 화면에서 [php cs fixer]로 검색하여 아래 포획된 php cs fixer(0.2.2)를 설치합니다.
    スクリーンショット 2021-07-11 17.03.02.png

    settings.json 수정


    PHP CS Fixer 플러그인을 설치한 후 파일 settings를 설정합니다.json을 수정합니다.
    다음 명령 등을 실행합니다. settings.제이슨을 엽니다.
    command + shift + p
    
    スクリーンショット 2021-07-11 17.04.00.png
    settings.json에 다음 항목을 추가합니다.
    저장할 때 성형해야 한다.
    경로에 관해서는 방금composier에 php-cs-fixer가 설치되어 있었기 때문에bin/아래에 php-cs-fixer가 있을 거예요. 저쪽을 참조하세요.
    {
    	"php-cs-fixer.onsave": true, // 保存時に整形を実行
    	"php-cs-fixer.executablePath": "[プロジェクト名]/vendor/bin/php-cs-fixer", // php-cs-fixerのパス
    }
    

    동작 확인


    VScode 편집을 사용하여 저장된 코드가 자동으로 성형되는지 확인합니다.
    public function aaa() {
                echo "Hello";
        }public function aaa()
    {
        echo "Hello";
    }
    

    참고 문장


    http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html

    좋은 웹페이지 즐겨찾기