224 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			224 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
require __DIR__ . '/tools/php-cs-fixer.d/PhpdocSingleLineVarFixer.php';
 | 
						|
 | 
						|
$header = file_get_contents(__DIR__ . '/tools/php-cs-fixer.d/header.txt');
 | 
						|
 | 
						|
return (new PhpCsFixer\Config())
 | 
						|
    ->registerCustomFixers([
 | 
						|
        new \PharIo\CSFixer\PhpdocSingleLineVarFixer()
 | 
						|
    ])
 | 
						|
    ->setRiskyAllowed(true)
 | 
						|
    ->setRules(
 | 
						|
        [
 | 
						|
            'PharIo/phpdoc_single_line_var_fixer'           => true,
 | 
						|
 | 
						|
            'align_multiline_comment'                       => true,
 | 
						|
            'array_indentation'                             => true,
 | 
						|
            'array_syntax'                                  => ['syntax' => 'short'],
 | 
						|
            'binary_operator_spaces'                        => [
 | 
						|
                'operators' => [
 | 
						|
                    '='  => 'align',
 | 
						|
                    '=>' => 'align',
 | 
						|
                ],
 | 
						|
            ],
 | 
						|
            'blank_line_after_namespace'                    => true,
 | 
						|
            'blank_line_after_opening_tag'                  => false,
 | 
						|
            'blank_line_before_statement'                   => [
 | 
						|
                'statements' => [
 | 
						|
                    'break',
 | 
						|
                    'continue',
 | 
						|
                    'declare',
 | 
						|
                    'do',
 | 
						|
                    'for',
 | 
						|
                    'foreach',
 | 
						|
                    'if',
 | 
						|
                    'include',
 | 
						|
                    'include_once',
 | 
						|
                    'require',
 | 
						|
                    'require_once',
 | 
						|
                    'return',
 | 
						|
                    'switch',
 | 
						|
                    'throw',
 | 
						|
                    'try',
 | 
						|
                    'while',
 | 
						|
                    'yield',
 | 
						|
                ],
 | 
						|
            ],
 | 
						|
            'braces'                                        => [
 | 
						|
                'allow_single_line_closure'                   => false,
 | 
						|
                'position_after_anonymous_constructs'         => 'same',
 | 
						|
                'position_after_control_structures'           => 'same',
 | 
						|
                'position_after_functions_and_oop_constructs' => 'same'
 | 
						|
            ],
 | 
						|
            'cast_spaces'                                   => ['space' => 'none'],
 | 
						|
 | 
						|
            // This fixer removes the blank line at class start, no way to disable that, so we disable the fixer :(
 | 
						|
            //'class_attributes_separation'                   => ['elements' => ['const', 'method', 'property']],
 | 
						|
 | 
						|
            'combine_consecutive_issets'                    => true,
 | 
						|
            'combine_consecutive_unsets'                    => true,
 | 
						|
            'compact_nullable_typehint'                     => true,
 | 
						|
            'concat_space'                                  => ['spacing' => 'one'],
 | 
						|
            'date_time_immutable'                           => true,
 | 
						|
            'declare_equal_normalize'                       => ['space' => 'single'],
 | 
						|
            'declare_strict_types'                          => true,
 | 
						|
            'dir_constant'                                  => true,
 | 
						|
            'elseif'                                        => true,
 | 
						|
            'encoding'                                      => true,
 | 
						|
            'full_opening_tag'                              => true,
 | 
						|
            'fully_qualified_strict_types'                  => true,
 | 
						|
            'function_declaration'                          => [
 | 
						|
                'closure_function_spacing' => 'one'
 | 
						|
            ],
 | 
						|
            'global_namespace_import'                       => [
 | 
						|
                'import_classes'   => true,
 | 
						|
                'import_constants' => true,
 | 
						|
                'import_functions' => true,
 | 
						|
            ],
 | 
						|
            'header_comment'                                => ['header' => $header, 'separate' => 'none'],
 | 
						|
            'indentation_type'                              => true,
 | 
						|
            'is_null'                                       => true,
 | 
						|
            'line_ending'                                   => true,
 | 
						|
            'list_syntax'                                   => ['syntax' => 'short'],
 | 
						|
            'logical_operators'                             => true,
 | 
						|
            'lowercase_cast'                                => true,
 | 
						|
            'constant_case'                                 => ['case' => 'lower'],
 | 
						|
            'lowercase_keywords'                            => true,
 | 
						|
            'lowercase_static_reference'                    => true,
 | 
						|
            'magic_constant_casing'                         => true,
 | 
						|
            'method_argument_space'                         => ['on_multiline' => 'ensure_fully_multiline'],
 | 
						|
            'modernize_types_casting'                       => true,
 | 
						|
            'multiline_comment_opening_closing'             => true,
 | 
						|
            'multiline_whitespace_before_semicolons'        => true,
 | 
						|
            'new_with_braces'                               => false,
 | 
						|
            'no_alias_functions'                            => true,
 | 
						|
            'no_alternative_syntax'                         => true,
 | 
						|
            'no_blank_lines_after_class_opening'            => false,
 | 
						|
            'no_blank_lines_after_phpdoc'                   => true,
 | 
						|
            'no_blank_lines_before_namespace'               => true,
 | 
						|
            'no_closing_tag'                                => true,
 | 
						|
            'no_empty_comment'                              => true,
 | 
						|
            'no_empty_phpdoc'                               => true,
 | 
						|
            'no_empty_statement'                            => true,
 | 
						|
            'no_extra_blank_lines'                          => true,
 | 
						|
            'no_homoglyph_names'                            => true,
 | 
						|
            'no_leading_import_slash'                       => true,
 | 
						|
            'no_leading_namespace_whitespace'               => true,
 | 
						|
            'no_mixed_echo_print'                           => ['use' => 'print'],
 | 
						|
            'no_multiline_whitespace_around_double_arrow'   => true,
 | 
						|
            'no_null_property_initialization'               => true,
 | 
						|
            'no_php4_constructor'                           => true,
 | 
						|
            'no_short_bool_cast'                            => true,
 | 
						|
            'echo_tag_syntax'                               => ['format' => 'long'],
 | 
						|
            'no_singleline_whitespace_before_semicolons'    => true,
 | 
						|
            'no_spaces_after_function_name'                 => true,
 | 
						|
            'no_spaces_inside_parenthesis'                  => true,
 | 
						|
            'no_superfluous_elseif'                         => true,
 | 
						|
            'no_superfluous_phpdoc_tags'                    => 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'               => false,
 | 
						|
            'no_unneeded_curly_braces'                      => false,
 | 
						|
            'no_unneeded_final_method'                      => true,
 | 
						|
            'no_unreachable_default_argument_value'         => true,
 | 
						|
            'no_unset_on_property'                          => true,
 | 
						|
            'no_unused_imports'                             => true,
 | 
						|
            'no_useless_else'                               => true,
 | 
						|
            'no_useless_return'                             => true,
 | 
						|
            'no_whitespace_before_comma_in_array'           => true,
 | 
						|
            'no_whitespace_in_blank_line'                   => true,
 | 
						|
            'non_printable_character'                       => true,
 | 
						|
            'normalize_index_brace'                         => true,
 | 
						|
            'object_operator_without_whitespace'            => true,
 | 
						|
            'ordered_class_elements'                        => [
 | 
						|
                'order' => [
 | 
						|
                    'use_trait',
 | 
						|
                    'constant_public',
 | 
						|
                    'constant_protected',
 | 
						|
                    'constant_private',
 | 
						|
                    'property_public_static',
 | 
						|
                    'property_protected_static',
 | 
						|
                    'property_private_static',
 | 
						|
                    'property_public',
 | 
						|
                    'property_protected',
 | 
						|
                    'property_private',
 | 
						|
                    'method_public_static',
 | 
						|
                    'construct',
 | 
						|
                    'destruct',
 | 
						|
                    'magic',
 | 
						|
                    'phpunit',
 | 
						|
                    'method_public',
 | 
						|
                    'method_protected',
 | 
						|
                    'method_private',
 | 
						|
                    'method_protected_static',
 | 
						|
                    'method_private_static',
 | 
						|
                ],
 | 
						|
            ],
 | 
						|
            'ordered_imports' => [
 | 
						|
                'imports_order' => [
 | 
						|
                    PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CLASS,
 | 
						|
                    PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CONST,
 | 
						|
                    PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_FUNCTION,
 | 
						|
                ]
 | 
						|
            ],
 | 
						|
            'phpdoc_add_missing_param_annotation'           => true,
 | 
						|
            'phpdoc_align'                                  => true,
 | 
						|
            'phpdoc_annotation_without_dot'                 => true,
 | 
						|
            'phpdoc_indent'                                 => true,
 | 
						|
            'phpdoc_no_access'                              => true,
 | 
						|
            'phpdoc_no_empty_return'                        => true,
 | 
						|
            'phpdoc_no_package'                             => true,
 | 
						|
            'phpdoc_order'                                  => true,
 | 
						|
            'phpdoc_return_self_reference'                  => true,
 | 
						|
            'phpdoc_scalar'                                 => true,
 | 
						|
            'phpdoc_separation'                             => true,
 | 
						|
            'phpdoc_single_line_var_spacing'                => true,
 | 
						|
            'phpdoc_to_comment'                             => true,
 | 
						|
            'phpdoc_trim'                                   => true,
 | 
						|
            'phpdoc_trim_consecutive_blank_line_separation' => true,
 | 
						|
            'phpdoc_types'                                  => ['groups' => ['simple', 'meta']],
 | 
						|
            'phpdoc_types_order'                            => true,
 | 
						|
            'phpdoc_to_return_type'                         => true,
 | 
						|
            'phpdoc_var_without_name'                       => true,
 | 
						|
            'pow_to_exponentiation'                         => true,
 | 
						|
            'protected_to_private'                          => true,
 | 
						|
            'return_assignment'                             => true,
 | 
						|
            'return_type_declaration'                       => ['space_before' => 'none'],
 | 
						|
            'self_accessor'                                 => false,
 | 
						|
            'semicolon_after_instruction'                   => true,
 | 
						|
            'set_type_to_cast'                              => true,
 | 
						|
            'short_scalar_cast'                             => true,
 | 
						|
            'simplified_null_return'                        => true,
 | 
						|
            'single_blank_line_at_eof'                      => true,
 | 
						|
            'single_import_per_statement'                   => true,
 | 
						|
            'single_line_after_imports'                     => true,
 | 
						|
            'single_quote'                                  => true,
 | 
						|
            'standardize_not_equals'                        => true,
 | 
						|
            'ternary_to_null_coalescing'                    => true,
 | 
						|
            'trailing_comma_in_multiline'                   => false,
 | 
						|
            'trim_array_spaces'                             => true,
 | 
						|
            'unary_operator_spaces'                         => true,
 | 
						|
            'visibility_required'                           => [
 | 
						|
                'elements' => [
 | 
						|
                    'const',
 | 
						|
                    'method',
 | 
						|
                    'property',
 | 
						|
                ],
 | 
						|
            ],
 | 
						|
            'void_return'                                   => true,
 | 
						|
            'whitespace_after_comma_in_array'               => true,
 | 
						|
            'yoda_style'                                    => false
 | 
						|
        ]
 | 
						|
    )
 | 
						|
    ->setFinder(
 | 
						|
        PhpCsFixer\Finder::create()
 | 
						|
            ->files()
 | 
						|
            ->in(__DIR__ . '/build')
 | 
						|
            ->in(__DIR__ . '/src')
 | 
						|
            ->in(__DIR__ . '/tests')
 | 
						|
            ->notName('autoload.php')
 | 
						|
    );
 |