1. 程式人生 > 實用技巧 >php 使用php-cs-fixer統一程式碼風格

php 使用php-cs-fixer統一程式碼風格

.php_cs.dist 檔案

<?php
$header = <<<'EOF'

EOF;

$finder =  PhpCsFixer\Finder::create()
            ->exclude('tests/Fixtures')   //排除檔案
            ->in(__DIR__);

return PhpCsFixer\Config::create()
    ->setRiskyAllowed(true)
    ->setRules([
        '@PSR2'                                 => true
, //'@Symfony' => false, //'@Symfony:risky' => false, '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' => false, '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);

format-php-code.bat檔案:

@echo off&title GIT批處理&color 0F
rem 清屏
cls
rem 設定編碼
set LESSCHARSET=utf-8
set input=1
set /p "input=請輸入[預設1]:"
if "%input%"=="1"  set files=.
if "%input%"=="2"  set files=E:\www\test
if "%input%"=="exit" exit
php php-cs-fixer.phar fix --config=.php_cs.dist  "%files%"
pause

https://github.com/FriendsOfPHP/PHP-CS-Fixer

到上面地址下載php-cs-fixer.phar這個檔案

最終檔案結構: