Laravel: ¡Automatiza el formato de código!
Laravel Pint es uno de los miembros más nuevos de los paquetes propios de Laravel y nos ayudará a tener códigos más legibles y consistentes.
Instalar y configurar Laravel Pint es sencillo y está construido sobre PHP-CS-Fixer, por lo que tiene toneladas de reglas para solucionar problemas de estilo de código.
No necesita Laravel 9 para usar Pint y es un paquete de dependencia cero
Pero ejecutar Pint es bastante doloroso porque cada vez que queremos enviar nuestros cambios al repositorio remoto, tenemos que ejecutar el siguiente comando manualmente:
./vendor/bin/pint --dirty
El indicador --dirty
ejecutará PHP-CS-Fixer solo para archivos modificados. Si queremos verificar los estilos para todos los archivos, simplemente elimine la marca --dirty
.
En este artículo, queremos simplemente automatizar la ejecución de la verificación de estilos de código con Pint antes de enviar cualquier archivo modificado para que incluso los desarrolladores del equipo tengan una estructura de código bien definida y no necesiten ejecutar Laravel Pint cada vez antes de enviar nuestros códigos al repositorio remoto.
Antes de comenzar, tenga cuidado, esta es una configuración muy simple y puede agregar tantas opciones como desee a Laravel Pint.
Para ejecutar ./vendor/bin/pint --dirty
justo antes de cada confirmación, debemos usar el gancho de pre-commit
dentro de la carpeta .git
.
En primer lugar,
Crearemos una carpeta de scripts
dentro de nuestro directorio raíz de Laravel. En esta carpeta tendremos un archivo setup.sh
y un archivo de pre-commit
sin ninguna extensión.
scripts/ setup.sh pre-commit
Dentro de nuestro setup.sh
tenemos:
#! /usr/bin/env bash
cp scripts/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
Y escriba las siguientes líneas en el archivo de pre-commit
:
#! /usr/bin/env bash
echo "Check php code styles..."
echo "Running PHP cs-fixer"
./vendor/bin/pint --dirty
git add .
echo "Done!"
En segundo lugar,
- Debemos ir al archivo
composer.json
y en el objetoscripts
agregar esta línea: (Si la clavepost-install-cmd
no existe,- debe crear la parte
post-install-cmd
y luego agregarla a continuación)
- debe crear la parte
"post-install-cmd": [
"bash scripts/setup.sh"
]
En tercer lugar,
- Necesitaremos el paquete de Laravel Pint para esto:
composer require laravel/pint --dev
Y para estar seguro, no olvide ejecutar:
composer install
El comando de composer install
agregará el gancho de pre-commit
a nuestra carpeta .git
y después de eso, ¡estaremos listos para comenzar!
- De ahora en adelante, podemos simplemente escribir nuestro código y justo antes de confirmar nuestros cambios,
- el comando Pint se ejecutará automáticamente y corregirá nuestros estilos de código.
Pint usa los estilos de código de Laravel por defecto, pero si quieres usar psr-12
, puede crear un archivo pint.json
dentro del directorio raíz de su proyecto Laravel y copiar debajo de json
para tener estilos de código PHP más pertinaces:
{
"preset": "psr12",
"rules": {
"simplified_null_return": true,
"blank_line_before_statement": {
"statements": ["return", "try"]
},
"binary_operator_spaces": {
"operators": {
"=>": "align_single_space_minimal"
}
},
"trim_array_spaces": false,
"new_with_braces": {
"anonymous_class": false
}
}
}
Esta es una configuración simple para nuestro comando Pint y simplificará los retornos nulos y definirá una sangría igual para las matrices.
Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre Node.js y AWS Lambda: