Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
July 23, 2021 10:45 pm GMT

Setup PHP-CS-Fixer for Laravel Project

When you are working on a small project or especially big projects with multiple team members then you need to follow proper coding standards in order to maintain the code stability.

Laravel follows the PSR-2 coding standard and the PSR-4 autoloading standard. To maintain the same coding standard like PSR-2 for your project(s) there are multiple packages available that can help you fix your code to follow standards.

In this article we will use PHP Coding Standards Fixer to setup it on a Laravel project level.

Following are the steps:

Step # 1

Go to your project root folder and run the following command:

composer require friendsofphp/php-cs-fixer --dev

Step # 2

In your project root, create a new file named .php-cs-fixer.php and add the following code and then save it.

<?phpuse 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' => 'one']    ],    'class_definition' => true,    'concat_space' => [        'spacing' => 'one'    ],    'declare_equal_normalize' => true,    'elseif' => true,    'encoding' => true,    'full_opening_tag' => true,    'fully_qualified_strict_types' => true,    '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,    'constant_case' => true,    'lowercase_keywords' => true,    'lowercase_static_reference' => true,        'magic_method_casing' => true,    'magic_constant_casing' => true,    'method_argument_space' => true,    'native_function_casing' => true,    'no_alias_functions' => 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_unreachable_default_argument_value' => 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' => false,    'object_operator_without_whitespace' => true,    'ordered_imports' => ['sort_algorithm' => 'alpha'],    'phpdoc_indent' => true,    'general_phpdoc_tag_rename' => true,    'phpdoc_inline_tag_normalizer' => true,    'phpdoc_tag_type' => 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,    'psr_autoloading' => true,    'self_accessor' => true,    'short_scalar_cast' => true,    'simplified_null_return' => false,    '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' => true,    'trim_array_spaces' => true,    'unary_operator_spaces' => true,    'visibility_required' => [        'elements' => ['method', 'property']    ],    'whitespace_after_comma_in_array' => true,    'no_unused_imports' => true,];$finder = Finder::create()    ->in([        __DIR__ . '/app',        __DIR__ . '/config',        __DIR__ . '/database',        __DIR__ . '/resources',        __DIR__ . '/routes',        __DIR__ . '/tests',    ])    ->name('*.php')    ->notName('*.blade.php')    ->ignoreDotFiles(true)    ->ignoreVCS(true);$config = new Config();return $config->setFinder($finder)    ->setRules($rules)    ->setRiskyAllowed(true)    ->setUsingCache(true);

This file contains local configuration that will be used instead of project configurations. It will let you configure rules, the files and directories that need to be analysed.

Feel free to change the above file to suit your needs.

Step # 3

Open composer.json file and add the following lines to the script section:

"sniff": [     "./vendor/bin/php-cs-fixer fix -vvv --dry-run --show-progress=dots"],"lint": [    "./vendor/bin/php-cs-fixer fix -vvv --show-progress=dots"],

With this we have added two scripts that we can run with composer command:

  • composer sniff
    This command is used for dry run in order to show you all the files that needs to be fixed without fixing them.

  • composer lint
    This command will try to auto fix your code and will show you the summary at the end.

Following are the some useful links:

If you want to install PHP Coding Standards Fixer in your favourite editor then following dedicated plugins are available:


Original Link: https://dev.to/ibrarturi/setup-php-cs-fixer-for-laravel-project-44nf

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To