# Laravel Pint - A PHP Code Style Fixer for Minimalists

The long-awaited hype train is finally over,  [Laravel](https://laravel.com/?ref=techvblogs.com) 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](https://github.com/laravel/pint?ref=techvblogs.com).

From the readme, "Laravel pint is a zero-dependency PHP code style fixer for minimalists - built on top of  [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer?ref=techvblogs.com)."

As soon as I read this, I got excited, and I mean very happy. In modern  [PHP](https://www.php.net/?ref=techvblogs.com), 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](https://getcomposer.org/?ref=techvblogs.com)  to install Pint into your PHP project:

```bash
#! /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:

```bash
./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:

```bash
#! /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:

```bash
#! /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:

```php
{
	"preset": "laravel"
}
```

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

```bash
#! /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:

```bash
#! /bin/bash
pint --preset psr12
```

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

```json
{
	"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:

```json
{
    "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](https://github.com/FriendsOfPHP/PHP-CS-Fixer?ref=techvblogs.com). Therefore, you may use any of its rules to fix code style issues in your project:  [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer?ref=techvblogs.com)  Configurator.

For more details, Visit  [Github](https://github.com/laravel/pint?ref=techvblogs.com).

**Thank you** for reading this blog.
