How to use PHP-CS-Fixer for code style checking in PHP

WBOY
Release: 2023-06-27 17:06:02
Original
2141 people have browsed it

During the development process, good coding style is an important factor in improving code quality and readability. As one of the most widely used programming languages ​​in the market today, PHP's code style inspection is also particularly important. Here, we will introduce a PHP code style checking tool-PHP-CS-Fixer, and explain in detail how to perform code style checking on it.

First of all, we need to understand what PHP-CS-Fixer is. PHP-CS-Fixer is a PHP code style checking tool created by the Symfony framework. Through this tool, we can easily maintain the consistency and high-quality coding style of PHP projects, thereby improving the readability and maintainability of the code.

So, how to use PHP-CS-Fixer for code style checking? The following are the detailed steps:

Step 1: Install PHP-CS-Fixer

First, we need to use Composer to install PHP-CS-Fixer. Composer is the most popular dependency manager in PHP and can be used to install and manage PHP dependencies.

Run the following command in the command line to install PHP-CS-Fixer:

composer require --dev friendsofphp/php-cs-fixer
Copy after login

Step 2: Create the PHP-CS-Fixer configuration file

Next, We need to create a PHP-CS-Fixer configuration file. This configuration file will specify details such as idioms, indentation, spaces, newlines, etc., as well as the rules that need to be followed, etc. Rules can be modified or added based on individual or team needs.

Create the file ".php_cs" in the project root directory and paste the following code into it:

<?php

$finder = SymfonyComponentFinderFinder::create()
    ->exclude('vendor')
    ->exclude('node_modules')
    ->exclude('storage')
    ->exclude('public')
    ->in(__DIR__)
    ->name('*.php')
    ->notName('*.blade.php')
    ->ignoreDotFiles(true)
    ->ignoreVCS(true);

return SymfonyCSConfigConfig::create()
    ->level(SymfonyCSFixerInterface::PSR2_LEVEL)
    ->fixers([
        'array_syntax' => ['syntax' => 'short'],
        'blank_line_after_opening_tag',
        'braces',
        'cast_spaces',
        'class_definition',
        'concat_without_spaces',
        'declare_equal_normalize',
        'function_call_space',
        'function_declaration',
        'indentation',
        'line_after_namespace',
        'linefeed',
        'lowercase_constants',
        'lowercase_keywords',
        'method_argument_space',
        'native_function_casing',
        'new_with_braces',
        'no_blank_lines_after_class_opening',
        'no_empty_phpdoc',
        'no_empty_statement',
        'no_extra_blank_lines',
        'no_leading_import_slash',
        'no_leading_namespace_whitespace',
        'no_mixed_echo_print',
        'no_multiline_whitespace_before_semicolons',
        'no_short_bool_cast',
        'no_spaces_after_function_name',
        'no_spaces_inside_parenthesis',
        'no_trailing_comma_in_list_call',
        'no_trailing_comma_in_singleline_array',
        'no_trailing_whitespace',
        'no_trailing_whitespace_in_comment',
        'no_unneeded_control_parentheses',
        'no_unused_imports',
        'no_whitespace_before_comma_in_array',
        'no_whitespace_in_blank_line',
        'normalize_index_brace',
        'object_operator', 
        'operators_spaces',
        'php_closing_tag',
        'phpdoc_align',
        'phpdoc_no_access',
        'phpdoc_no_empty_return',
        'phpdoc_no_package',
        'phpdoc_scalar',
        'phpdoc_single_line_var_spacing',
        'phpdoc_summary',
        'phpdoc_to_comment',
        'phpdoc_trim',
        'phpdoc_type_to_var',
        'phpdoc_var_without_name',
        'remove_leading_slash_use',
        'remove_lines_between_uses',
        'return',
        'self_accessor',
        'short_array_syntax',
        'single_array_no_trailing_comma',
        'single_blank_line_before_namespace',
        'single_quote',
        'spaces_before_semicolon',
        'spaces_cast',
        'standardize_not_equals',
        'ternary_spaces',
        'trim_array_spaces',
        'unalign_double_arrow',
        'unalign_equals',
        'unary_operators_spaces',
        'unused_use',
    ])
    ->finder($finder);
Copy after login

The above configuration contains a series of rules, such as:

  • Use PSR-2 code style specifications;
  • prohibit the use of useless spaces;
  • prohibit the occurrence of multiple namespaces in a single file;
  • prohibit the use of array initialization Extra commas, etc.

These rules can be modified according to personal preference. In this example, we use some rules recommended by the Symfony framework.

Step 3: Run PHP-CS-Fixer

Finally, we can use PHP-CS-Fixer to check our PHP code. Just enter the following command on the command line:

vendor/bin/php-cs-fixer fix
Copy after login

This command will find all PHP files in the entire project and modify the improper code format used in them. Of course, this command can also take some parameters to check the code style according to the specified rules, for example:

vendor/bin/php-cs-fixer fix src/ --rules=@PSR2
Copy after login

The above command will check the PSR-2 style of the code in the "src" folder.

Summary:

PHP-CS-Fixer is a very practical PHP code style checking tool, which can help programmers maintain the consistency and readability of project code. Using the steps introduced above, we can easily use PHP-CS-Fixer to perform code style checking, thereby improving the quality of the code.

The above is the detailed content of How to use PHP-CS-Fixer for code style checking in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template