DEV Community

Cover image for Laravel Pint - A PHP Code Style Fixer for Minimalists
Suresh Ramani
Suresh Ramani

Posted on • Originally published at techvblogs.com

Laravel Pint - A PHP Code Style Fixer for Minimalists

The long-awaited hype train is finally over, Laravel latest open-source CLI app has been released to the world, and we got our hands on it to tell you all about it. Introducing Laravel Pint.

From the readme, "Laravel pint is a zero-dependency PHP code style fixer for minimalists - built on top of PHP-CS-Fixer."

As soon as I read this, I got excited, and I mean very happy. In modern PHP, we have been going through a phase of honing our craft, making our code stricter and better tested, and ensuring we have a consistent code style. This all began back when PHP-FIG was formed, and they started to release PSRs, and it has been going from strength to strength with frameworks having their own specific published style rules. This package is no different and will automatically test and fix your code style based on a preset.

Installation

Laravel Pint requires PHP 8.0+.

You may use Composer to install Pint into your PHP project:

#! /bin/bash
composer require laravel/pint --dev
Enter fullscreen mode Exit fullscreen mode

Once Pint has been installed, the pint binary will be available in your project's vendor/bin directory:

./vendor/bin/pint
Enter fullscreen mode Exit fullscreen mode

Running Pint

When running Pint, it will output a list of files that have been fixed. It is possible to see the changes made in more detail using the -v option:

#! /bin/bash
./vendor/bin/pint -v
Enter fullscreen mode Exit fullscreen mode

In addition, if you would like Pint to inspect your code for style errors without actually changing the files, you may use the --test option:

#! /bin/bash
./vendor/bin/pint --test
Enter fullscreen mode Exit fullscreen mode

Configuring Pint

With our brand new Laravel application, let's configure a preset to Laravel. Create a pint.json file and add:

{
    "preset": "laravel"
}
Enter fullscreen mode Exit fullscreen mode

In addition, if you wish to use a pint.json from a specific directory, you may use the --config option:

#! /bin/bash
pint --config vendor/my-company/coding-style/pint.json
Enter fullscreen mode Exit fullscreen mode

Presets

Presets defines a set of rules that can be used to fix code style issues in your code. By default, Pint uses the laravel preset, which fixes problems by following the opinionated coding style of Laravel.

However, you can use a different preset by passing the --preset option:

#! /bin/bash
pint --preset psr12
Enter fullscreen mode Exit fullscreen mode

If you wish, you may also set the preset in your project's pint.json file:

{
    "preset": "psr12"
}
Enter fullscreen mode Exit fullscreen mode

The currently supported presets are laravel, psr12, and Symfony.

Rules

Rules are style guidelines that Pint will use to fix code style issues in your code. As mentioned above, presets are predefined groups of rules that should be perfect for most PHP projects, so you typically will not need to worry about the individual rules they contain.

However, if you wish, you may enable or disable specific rules in your pint.json file:

{
    "preset": "laravel",
    "rules": {
        "simplified_null_return": true,
        "braces": false,
        "new_with_braces": {
            "anonymous_class": false,
            "named_class": false
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Pint is built on top of PHP-CS-Fixer. Therefore, you may use any of its rules to fix code style issues in your project: PHP-CS-Fixer Configurator.

For more details, Visit Github.

Thank you for reading this blog.

Discussion (0)