Code/PHP
PHP Coding Standards Fixer (PHP CS Fixer)
codens
2021. 3. 12. 18:47
PHP Coding Standards Fixer (PHP CS Fixer)
- php 코딩 표준화 도구
https://github.com/FriendsOfPHP/PHP-CS-Fixer - 9.9k
- v2.18.3 , 2021.03
- 설치
composer global require friendsofphp/php-cs-fixer
- 경로 추가
%APPDATA%\Composer\vendor\bin
- 코드 수정
php-cs-fixer fix src
//--------------------------------------------
< 설정 >
.php_cs 파일 옵션 해설
<?php
// https://mlocati.github.io/php-cs-fixer-configurator/
// https://cs.symfony.com/doc/rules/index.html
return PhpCsFixer\Config::create()
->setIndent(str_pad('', 4)) // 들여쓰기 크기
->setRules([
'concat_space' => ['spacing' => 'one'], // 문자열 합칠때 빈칸 처리 , .
//-----------------
// 기본 설정
'@PSR2' => true,
'array_indentation' => true, //배열 들여쓰기
//'array_syntax' => ['syntax' => 'short'], //배열 변경 array() => []
'combine_consecutive_unsets' => false, //unset() 합치기
'method_separation' => true, //함수 사이를 1줄로 조정
'no_multiline_whitespace_before_semicolons' => false, //줄사이를 1줄이하로 조정
'single_quote' => false, //따옴표를 작은 따옴표로 변경
'binary_operator_spaces' => [//비교 연산자 빈칸 처리
'align_double_arrow' => false,
'align_equals' => false,
],
// 'blank_line_after_opening_tag' => true, // <?php 태그 다음에 빈줄 추가
// 'blank_line_before_return' => true,//return 전에 빈줄 추가
'braces' => [//중괄호 {} 처리
'allow_single_line_closure' => true, //1라인 함수 허용
//'allow_single_line_anonymous_class_with_empty_body' => false, //
//'allow_single_line_closure' => false, //
//'position_after_anonymous_constructs' => 'same', //
//'position_after_functions_and_oop_constructs' => 'next',//괄호를 함수선언 다음에 위치
],
'cast_spaces' => true, //형변환 예 (int) 에 빈칸 처리
/* 'class_definition' => [
'singleLine' => false,
'multiLineExtendsEachSingleLine' => false,
'singleItemSingleLine' => false,
], */
'declare_equal_normalize' => true, //declare()내부 빈칸처리
'function_typehint_space' => true, //함수 인자 타입 빈칸처리
'hash_to_slash_comment' => true, //주석 변경 # -> //
'include' => true, //include ,require 관련 빈칸 처리
'lowercase_cast' => true, //형변환 소문자
// 'native_function_casing' => true,//내부함수 소문자
// 'new_with_braces' => true,//new 다음 괄호 추가 , new X()
// 'no_blank_lines_after_class_opening' => true, //클래스 시작 부분에 빈줄 삭제
// 'no_blank_lines_after_phpdoc' => true,
// 'no_empty_comment' => true,
'no_empty_phpdoc' => true, //설명 뒤에 빈줄 삭제
//'no_empty_statement' => true, //빈 명령줄 삭제 , ;; -> ;
'no_extra_consecutive_blank_lines' => [//빈줄 삭제
'curly_brace_block',
'extra',
'parenthesis_brace_block',
'square_brace_block',
'throw',
//'use',
],
'switch_case_space' => true, //switch의 case 뒤 콜론 사이 빈칸 삭제
//'switch_continue_to_break' => true,//switch내의 continue를 break로 변경
// 'no_leading_import_slash' => true,// 맨앞 슬래쉬 제거 use \Bar; -> use Bar;
'no_leading_namespace_whitespace' => true, //namespace 앞 빈칸 제거
// 'no_mixed_echo_print' => array('use' => 'echo'), // echo, print => echo로 변경
'no_multiline_whitespace_around_double_arrow' => true, // '=>' 사이에 공간 삭제
//3
// 'no_short_bool_cast' => true, // !! => (bool)
'no_singleline_whitespace_before_semicolons' => true, //세미콜론 앞에 빈칸 삭제
'no_spaces_around_offset' => true, //배열 값 사이 빈칸 삭제
'no_trailing_comma_in_list_call' => true, // 배열 마지막 콤마 제거
'no_trailing_comma_in_singleline_array' => true, // array() 마지막 콤마 제거
//'no_unneeded_control_parentheses' => ['break','continue'],//필요없는 () 삭제
//'no_unused_imports' => true, //사용하지 않는 모듈 삭제 (use ...)
'ordered_imports' => ['sort_algorithm' => 'alpha'], //모듈 정렬
'no_whitespace_before_comma_in_array' => true, // 배열에서 콤마 앞의 빈칸 삭제,
'no_whitespace_in_blank_line' => true, //빈줄에 빈칸 삭제
// 'normalize_index_brace' => true,// {}=> []로 변경, $arr{$index} => $arr[$index];
// 2
'object_operator_without_whitespace' => true, // '->' 사이 빈칸 삭제
// 'php_unit_fqcn_annotation' => true,// PHPUnit 주석 설정 FQCN ( Fully Qualified Class Name )
//'pre_increment' => true, // $a++; => ++$a;
'return_type_declaration' => ['space_before' => 'one'], //함수 리턴 타입 빈칸 삭제
// 'self_accessor' => true,//클래스 이름 대신 self로 변경 , Sample::BAR; => self::BAR;
// 'short_scalar_cast' => true,//형변환 단축 , (integer) $b; => (int) $b;
'single_blank_line_before_namespace' => true, //namespace 전에 빈칸 삭제
//'single_class_element_per_statement' => true, //class멤버 선언시, 한줄에 1개씩 분리
//'space_after_semicolon' => true,//세미콜론 뒤에 빈칸 삽입
// 'standardize_not_equals' => true,// '<>' -> '!=' 변경
//1
'ternary_operator_spaces' => true, // 삼항연산자에 빈칸 삽입
//'trailing_comma_in_multiline_array' => true, //여러줄 배열 마지막에 , 추가
'trim_array_spaces' => true, //array 앞뒤 빈칸 삭제
'unary_operator_spaces' => true, //연산자 빈칸 삭제
'whitespace_after_comma_in_array' => true, //배열 콤마',' 뒤에 빈칸 추가
//
'function_declaration' => ['closure_function_spacing' => 'one'], //무명 함수 () 빈칸 , function () => function()
'indentation_type' => true, //들여쓰기 tab -> space ?
'no_spaces_after_function_name' => true, //함수 이름뒤에 빈칸 삭제
'no_spaces_inside_parenthesis' => true, // () 내부 빈칸 삭제
'not_operator_with_successor_space' => true, // (!) 뒤에 빈칸 1개 삽입
//'phpdoc_align' => true,
// 'phpdoc_annotation_without_dot' => true,
// 'phpdoc_indent' => true,
// 'phpdoc_inline_tag' => true,
// 'phpdoc_no_access' => true,
// 'phpdoc_no_alias_tag' => true,
// 'phpdoc_no_empty_return' => true,
// 'phpdoc_no_package' => true,
// 'phpdoc_no_useless_inheritdoc' => true,
'phpdoc_order' => false,
// 'phpdoc_return_self_reference' => true,
// 'phpdoc_scalar' => true,
// 'phpdoc_separation' => true,
// 'phpdoc_single_line_var_spacing' => true,
'phpdoc_summary' => true,
// 'phpdoc_to_comment' => true,
// 'phpdoc_trim' => true,
// 'phpdoc_types' => true,
// 'phpdoc_var_without_name' => true,
])
->setLineEnding("\n"); //개행문자
//------------------------------------------------
//------------------------------------------------
< VS Code Extension >
- php cs fixer junstyle.php-cs-fixer
https://marketplace.visualstudio.com/items?itemName=junstyle.php-cs-fixer - 439,265- v0.1.158 , 2021. 1.
https://github.com/junstyle/vscode-php-cs-fixer - 132
- 단점
- 배열 기술시 (,) 뒤에 빈칸이 2개 이상 있는 것을 줄이지 못한다
-> 해결방법(궁색) : 코딩시 빈칸을 1개 이하로 쓴다.
- 주의! 라라벨 blade 파일에서 js에 적용된 블레이드 문법 충돌
{!! !!}
반응형