PHP-CS-Fixer: The Ultimate Guide to PHP Code Formatting in VSCode

Harish Kumar · · 1082 Views

In this comprehensive guide, we will explore how to use PHP-CS-Fixer in VSCode to automate the process of PHP code formatting and adhere to the best coding practices.

What is PHP-CS-Fixer?

PHP-CS-Fixer, short for PHP code style fixer, is a powerful tool that automatically detects and fixes simple code style issues in PHP files. It follows the PSR-x standards, which are a set of coding standards recommended by the PHP-FIG (PHP Framework Interop Group). By using PHP-CS-Fixer, you can ensure that your code follows the established PHP coding standards, making it more readable and maintainable.

Installing PHP-CS-Fixer

Before we dive into using PHP-CS-Fixer in VSCode, we need to install it globally. To do this, we will use Composer, a dependency management tool for PHP. Open your terminal or command prompt and run the following command:

composer global require friendsofphp/php-cs-fixer

This command will install PHP-CS-Fixer globally on your system, allowing you to use it in any PHP project.

Using PHP-CS-Fixer in VSCode

Now that we have PHP-CS-Fixer installed globally and our VSCode environment set up for PHP development, let's explore how to integrate PHP-CS-Fixer into our workflow.

1. Installing the PHP-CS-Fixer Extension

To use PHP-CS-Fixer directly within VSCode, we need to install the corresponding extension. Open the Extensions view in VSCode by clicking on the square icon in the left sidebar or by pressing Ctrl+Shift+X (or Cmd+Shift+X on macOS). In the search bar, type "PHP-CS-Fixer" and click on the extension provided by junstyle. Click the "Install" button to install the extension.

2. Configuring PHP-CS-Fixer

Once the extension is installed, we need to configure it to match our desired code formatting rules. By default, PHP-CS-Fixer follows the PSR-12 coding style, but we can customize it according to our preferences. To configure PHP-CS-Fixer, open the settings.json file in VSCode by clicking on the gear icon in the bottom left corner and selecting "Settings". Alternatively, you can use the shortcut Ctrl+, (or Cmd+, on macOS).

In the settings.json file, add the following configuration:

"php-cs-fixer.rules": {
    "@PSR2": true,
    "indentation_type": "spaces",
    "indentation_size": 4,
    "array_syntax": {
        "syntax": "short"
    }
}

In this example, we have set the code formatting rules to follow the PSR-2 standard, use spaces for indentation with a size of 4, and use the short syntax for arrays. Feel free to modify these rules according to your preferences.

3. Formatting PHP Code

Now that we have PHP-CS-Fixer configured, we can start formatting our PHP code. Open a PHP file in VSCode, and right-click anywhere in the file. From the context menu, select "Format Document" or use the shortcut Shift+Alt+F. PHP-CS-Fixer will analyze your code and automatically format it according to the defined rules.

If you prefer to format the code automatically on every file save, you can enable the "editor.formatOnSave" option in your VSCode settings. To do this, open the settings.json file again and add the following configuration:

"editor.formatOnSave": true

With this option enabled, every time you save a PHP file, PHP-CS-Fixer will automatically format it, ensuring that your code always adheres to the defined coding standards.

4. Customizing Formatting Rules

In addition to the default configuration, PHP-CS-Fixer allows you to customize formatting rules on a per-project basis. To do this, create a .php_cs file in the root directory of your project. This file acts as a configuration file where you can specify your desired code formatting rules.

Here is an example of a .php_cs file:

<?php

$finder = PhpCsFixer\Finder::create()
    ->exclude('vendor')
    ->in(__DIR__);

return PhpCsFixer\Config::create()
    ->setRules([
        '@PSR2' => true,
        'array_syntax' => [
            'syntax' => 'short',
        ],
    ])
    ->setFinder($finder);

In this example, we have excluded the "vendor" directory from the formatting process, set the code formatting rules to follow the PSR-2 standard, and use the short syntax for arrays.

By customizing the formatting rules in the .php_cs file, you can ensure that your project-specific coding standards are consistently applied.

Conclusion

In this guide, we have explored how to use PHP-CS-Fixer in VSCode to automate PHP code formatting and adhere to coding best practices. By installing the PHP-CS-Fixer extension and configuring it to match our desired code formatting rules, we can ensure that our PHP code is clean, readable, and maintainable. With the power of PHP-CS-Fixer, we can focus on writing high-quality code without worrying about manual formatting. So why wait? Start using PHP-CS-Fixer in your PHP development workflow and take your coding standards to the next level!

Remember, clean code is the foundation of every successful project. Happy coding!

0

Please login or create new account to add your comment.

0 comments
You may also like:

Laravel Pint & VS Code: Automate Your Code Formatting

Laravel Pint is an opinionated PHP code style fixer built on top of PHP-CS-Fixer, designed to simplify the process of ensuring clean and consistent code style in Laravel projects. (...)
Harish Kumar

Best Practices for Testing and Quality Assurance in Custom Web App Development

In the fast-paced world of web app development, delivering high-quality products that meet customer expectations is crucial. But how can you ensure your custom web application (...)

Streamlining Your CSS Workflow with Stylelint in VSCode

How to streamline your CSS workflow by setting up and leveraging the power of Stylelint in the popular code editor, Visual Studio Code (VSCode).
Harish Kumar

Set up ESLint, Prettier, and VSCode for linting, formatting, and optimizing JavaScript code quality

In this comprehensive tutorial, we will explore how to set up and configure ESLint, Prettier, and Visual studio code to improve code quality and maintain consistent code style (...)
Harish Kumar

Learn PHP Development from beginning.

PHP stance Hypertext Preprocessor, it's server-side scripting laungage and easy to use. PHP  also well  known for its speed, simplicity, flexibility features that have made it (...)
Programmer Desk

What is the difference between classes vs enums in PHP 8.1?

One of the common questions that I have been asked is what is the difference between classes and enums. Class(es) and enum(s) share many similarities but differ in some aspects. (...)
Harish Kumar