Created
April 2, 2021 05:09
-
-
Save mitoop/735c06ee504461220de0875d8440981e to your computer and use it in GitHub Desktop.
Laravel Style PHP-CS-FIXER Config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use PhpCsFixer\Config; | |
use PhpCsFixer\Finder; | |
$rules = [ | |
'array_syntax' => ['syntax' => 'short'], | |
'binary_operator_spaces' => [ | |
'default' => 'single_space', | |
'operators' => ['=>' => null] | |
], | |
'blank_line_after_namespace' => true, | |
'blank_line_after_opening_tag' => true, | |
'blank_line_before_statement' => [ | |
'statements' => ['return'] | |
], | |
'braces' => true, | |
'cast_spaces' => true, | |
'class_attributes_separation' => [ | |
'elements' => ['method'] | |
], | |
'class_definition' => true, | |
'concat_space' => [ | |
'spacing' => 'none' | |
], | |
'declare_equal_normalize' => true, | |
'elseif' => true, | |
'encoding' => true, | |
'full_opening_tag' => true, | |
'fully_qualified_strict_types' => true, // added by Shift | |
'function_declaration' => true, | |
'function_typehint_space' => true, | |
'heredoc_to_nowdoc' => true, | |
'include' => true, | |
'increment_style' => ['style' => 'post'], | |
'indentation_type' => true, | |
'linebreak_after_opening_tag' => true, | |
'line_ending' => true, | |
'lowercase_cast' => true, | |
'lowercase_constants' => true, | |
'lowercase_keywords' => true, | |
'lowercase_static_reference' => true, // added from Symfony | |
'magic_method_casing' => true, // added from Symfony | |
'magic_constant_casing' => true, | |
'method_argument_space' => true, | |
'native_function_casing' => true, | |
'no_extra_blank_lines' => [ | |
'tokens' => [ | |
'extra', | |
'throw', | |
'use', | |
'use_trait', | |
] | |
], | |
'no_blank_lines_after_class_opening' => true, | |
'no_blank_lines_after_phpdoc' => true, | |
'no_closing_tag' => true, | |
'no_empty_phpdoc' => true, | |
'no_empty_statement' => true, | |
'no_leading_import_slash' => true, | |
'no_leading_namespace_whitespace' => true, | |
'no_mixed_echo_print' => [ | |
'use' => 'echo' | |
], | |
'no_multiline_whitespace_around_double_arrow' => true, | |
'multiline_whitespace_before_semicolons' => [ | |
'strategy' => 'no_multi_line' | |
], | |
'no_short_bool_cast' => true, | |
'no_singleline_whitespace_before_semicolons' => true, | |
'no_spaces_after_function_name' => true, | |
'no_spaces_around_offset' => true, | |
'no_spaces_inside_parenthesis' => true, | |
'no_trailing_comma_in_list_call' => true, | |
'no_trailing_comma_in_singleline_array' => true, | |
'no_trailing_whitespace' => true, | |
'no_trailing_whitespace_in_comment' => true, | |
'no_unneeded_control_parentheses' => true, | |
'no_useless_return' => true, | |
'no_whitespace_before_comma_in_array' => true, | |
'no_whitespace_in_blank_line' => true, | |
'normalize_index_brace' => true, | |
'not_operator_with_successor_space' => true, | |
'object_operator_without_whitespace' => true, | |
'ordered_imports' => ['sortAlgorithm' => 'alpha'], | |
'phpdoc_indent' => true, | |
'phpdoc_inline_tag' => true, | |
'phpdoc_no_access' => true, | |
'phpdoc_no_package' => true, | |
'phpdoc_no_useless_inheritdoc' => true, | |
'phpdoc_scalar' => 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, | |
'phpdoc_align' => [ | |
'tags' => ['return', 'var', 'throws'], // @param 两个空格 | |
'align' => 'left' | |
], | |
'short_scalar_cast' => true, | |
'simplified_null_return' => false, // disabled by Shift | |
'single_blank_line_at_eof' => true, | |
'single_blank_line_before_namespace' => true, | |
'single_class_element_per_statement' => true, | |
'single_import_per_statement' => true, | |
'single_line_after_imports' => true, | |
'single_line_comment_style' => [ | |
'comment_types' => ['hash'] | |
], | |
'single_quote' => true, | |
'space_after_semicolon' => true, | |
'standardize_not_equals' => true, | |
'switch_case_semicolon_to_colon' => true, | |
'switch_case_space' => true, | |
'ternary_operator_spaces' => true, | |
'trailing_comma_in_multiline_array' => true, | |
'trim_array_spaces' => true, | |
'unary_operator_spaces' => true, | |
'visibility_required' => [ | |
'elements' => ['method', 'property'] | |
], | |
'whitespace_after_comma_in_array' => true, | |
'no_unused_imports' => true, | |
// risky | |
'no_alias_functions' => false, // risky | |
'psr4' => false, // risky | |
'self_accessor' => false, // risky | |
'no_unreachable_default_argument_value' => false, // risky | |
]; | |
$projectPath = __DIR__; | |
$finder = Finder::create() | |
->in([ | |
$projectPath . '/app', | |
$projectPath . '/config', | |
$projectPath . '/database', | |
$projectPath . '/resources', | |
$projectPath . '/routes', | |
$projectPath . '/tests', | |
]) | |
->name('*.php') | |
->notName('*.blade.php') | |
->ignoreDotFiles(true) | |
->ignoreVCS(true); | |
return Config::create() | |
->setFinder($finder) | |
->setRules($rules) | |
->setRiskyAllowed(false) | |
->setUsingCache(true); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
该配置基于 Laravel Shift 和 StyleCI Laravel Preset
基于 Laravel 8.35.1 版本对 framework 目录进行测试 只有两个文件格式化有冲突:
vendor/laravel/framework/src/Illuminate/Cache/PhpRedisLock.php
从 {@inheritdoc} => {@inheritdoc} 这个属于该文件本身的问题 其他框架文件都是 {@inheritdoc}
vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php