1. Paquetes
  2. Laravel Pint

Introducción

Laravel Pint es un arreglador de estilo de código PHP con opiniones para minimalistas. Pint se basa en PHP-CS-Fixer y facilita asegurar que el estilo de tu código se mantenga limpio y consistente.

Pint se instala automáticamente con todas las nuevas aplicaciones de Laravel, por lo que puedes empezar a usarlo de inmediato. De forma predeterminada, Pint no requiere ninguna configuración y corregirá problemas de estilo de código en tu proyecto siguiendo el estilo de codificación de Laravel.

Instalación

Pint se incluye en versiones recientes del framework Laravel, por lo que la instalación suele ser innecesaria. Sin embargo, para aplicaciones más antiguas, puedes instalar Laravel Pint a través de Composer:

composer require laravel/pint --dev

Ejecución de Pint

Puedes indicar a Pint que corrija problemas de estilo de código invocando el binario pint que está disponible en el directorio vendor/bin de tu proyecto:

./vendor/bin/pint

También puedes ejecutar Pint en archivos o directorios específicos:

./vendor/bin/pint app/Models
 
./vendor/bin/pint app/Models/User.php

Pint mostrará una lista detallada de todos los archivos que actualiza. Puedes ver aún más detalles sobre los cambios de Pint proporcionando la opción -v al invocar Pint:

./vendor/bin/pint -v

Si deseas que Pint simplemente inspeccione tu código en busca de errores de estilo sin cambiar realmente los archivos, puedes usar la opción --test:

./vendor/bin/pint --test

Si deseas que Pint solo modifique los archivos que tienen cambios no confirmados según Git, puedes usar la opción --dirty:

./vendor/bin/pint --dirty

Configuración de Pint

Como se mencionó anteriormente, Pint no requiere ninguna configuración. Sin embargo, si deseas personalizar los preajustes, las reglas o las carpetas inspeccionadas, puedes hacerlo creando un archivo pint.json en el directorio raíz de tu proyecto:

{
"preset": "laravel"
}

Además, si deseas utilizar un pint.json de un directorio específico, puedes proporcionar la opción --config al invocar Pint:

pint --config vendor/my-company/coding-style/pint.json

Preajustes

Los preajustes definen un conjunto de reglas que se pueden usar para corregir problemas de estilo de código en tu proyecto. De forma predeterminada, Pint utiliza el preajuste laravel, que corrige problemas siguiendo el estilo de codificación de Laravel. Sin embargo, puedes especificar un preajuste diferente proporcionando la opción --preset a Pint:

pint --preset psr12

Si lo deseas, también puedes establecer el preajuste en el archivo pint.json de tu proyecto:

{
"preset": "psr12"
}

Los preajustes actualmente admitidos por Pint son: laravel, per, psr12 y symfony.

Reglas

Las reglas son pautas de estilo que Pint utilizará para corregir problemas de estilo de código en tu proyecto. Como se mencionó anteriormente, los preajustes son grupos predefinidos de reglas que deberían ser perfectos para la mayoría de los proyectos PHP, por lo que generalmente no necesitarás preocuparte por las reglas individuales que contienen.

Sin embargo, si lo deseas, puedes habilitar o deshabilitar reglas específicas en tu archivo pint.json:

{
"preset": "laravel",
"rules": {
"simplified_null_return": true,
"braces": false,
"new_with_braces": {
"anonymous_class": false,
"named_class": false
}
}
}

Pint se basa en PHP-CS-Fixer. Por lo tanto, puedes utilizar cualquiera de sus reglas para corregir problemas de estilo de código en tu proyecto: Configurador de PHP-CS-Fixer.

Excluir Archivos / Carpetas

De forma predeterminada, Pint inspeccionará todos los archivos .php en tu proyecto, excepto los que están en el directorio vendor. Si deseas excluir más carpetas, puedes hacerlo utilizando la opción de configuración exclude:

{
"exclude": [
"my-specific/folder"
]
}

Si deseas excluir todos los archivos que contienen un patrón de nombre dado, puedes hacerlo utilizando la opción de configuración notName:

{
"notName": [
"*-my-file.php"
]
}

Si deseas excluir un archivo proporcionando una ruta exacta al archivo, puedes hacerlo utilizando la opción de configuración notPath:

{
"notPath": [
"path/to/excluded-file.php"
]
}