Laravel Pint - A PHP Code Style Fixer for Minimalists
Jun 29, 2022, Originally published at techvblogs.com
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
Once Pint has been installed, the pint binary will be available in your project's vendor/bin
directory:
./vendor/bin/pint
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
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
Configuring Pint
With our brand new Laravel application, let's configure a preset to Laravel. Create a pint.json
file and add:
{
"preset": "laravel"
}
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
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
If you wish, you may also set the preset in your project's pint.json
file:
{
"preset": "psr12"
}
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
}
}
}
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.