En este tutorial aprenderás a instalar PHP_CodeSniffer, que es una herramienta que se utiliza para analizar el código fuente de aplicaciones desarrollador PHP en busca de problemas con las convenciones de programación o estándares definidos. Permite ayudar a los desarrolladores a mantener el código fuente limpio, legible y consistente.
Los pasos de este tutorial son válidos parea todos los sistemas operativos; ya sea Linux, macOS o Windows.
Contenidos
Acerca de PHP_CodeSniffer
Mediante PHP_CodeSniffer podrás identificar errores de estilos en tu código, como por ejemplo el uso incorrecto de espacios en blanco, de indentación o formato de los comentarios.
Con esta herramienta podrás definir y aplicar tus propios estándares o adoptar otros ampliamente aceptados, como PSR-2 o PSR-12 para proyectos basados en PHP-FIG.
Lo mejor de esta herramienta es que con ella puedes personalizar las reglas, convenciones y estándares según las necesidades de tu proyecto.
PHP_CodeSniffer es compatible con una gran variedad de IDEs, facilitando la integración de la herramienta con montones de workflows.
Requisitos de PHP_CodeSniffer
Para instalar PHP_CodeSniffer es necesario que tengas PHP instalado en tu sistema, algo que puedes comprobar ejecutando el comando php -v
desde la terminal de comandos. En los siguientes tutoriales te explico cómo instalar PHP en varios sistemas operativos:
- Instalación de PHP en Windows: Cómo instalar PHP en Windows
- Instalación de PHP en Ubuntu: Cómo instalar PHP en Ubuntu
Además también puedes instalar PHP usando alguno de estos paquetes:
- Instalación de PHP con Wamp: Tutorial de instalación de Wamp,
- Instalación de PHP con XAMPP: Tutorial de instalación de XAMPP
- Instalación de PHP con MAMP: Tutorial de instalación de MAMP
- Instalación de PHP con UniServer: Tutorial de instalación de UniServer
Además también necesitarás composer, que es un gestor de dependencias de PHP. Para instalar composer en Debian, puedes consultar mi tutorial de instalación de composer en Debian. Si usas Windows, basta con que accedas a la web de composer y lo descargues.
Instalación de PHP_CodeSniffer
Una vez tengas tanto PHP como composer instalados en tu sistema, debes seguir los pasos que se describen a continuación:
- Abre la terminal de comandos y ejecuta este comando par actualizar la dependencias de PHP:
composer self-update && composer global update
- Luego ejecuta este otro comando para descargar PHP_CodeSniffer:
composer global require "squizlabs/php_codesniffer=*"
- Tu objetivo es ejecutar el comando
phpcs
. Para ello, debes agregar el comando al PATH. Si usas Linux, ejecuta este comando:export PATH="$PATH:$HOME/.composer/vendor/bin
Recuerda que si la ubicación de tu instalación global, de composer no es la especificada en el comando, tendrás que modificar el directorio. Luego ejecuta este momento para aplicar los cambios:
source ~/.bashrc
Si usas Windows, tendrás que agregar el directorio
/bin
de composer al PATH de tu sistema. Parar ello, consulta el tutorial en donde explico cómo agregar directorios al PATH de Windows. No te olvides de salir y de volver a abrir la terminal. - Con esto ya estará disponible el comando
phpcs
. Para comprobar que todo está en orden, ejecuta este comando:phpcs --version
Si ejecutas el comando php -i
, podrás ver las dependencias instaladas:
$ phpcs -i
The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, Modernize, Normalize
dArrays, Universal, PHPCSUtils, WordPress, WordPress-Core, WordPress-Docs and WordPress-Extra
Alternativamente, también podrás instalar phpcs
usando este comando:
composer global require --dev dealerdirect/phpcodesniffer-composer-installer
También puedes instalar PHP_CodeSniffer localmente. Para ello edita el archivo composer.json
de tu proyecto y agrégalo como dependencia:
{
"require-dev": {
"squizlabs/php_codesniffer": "3.*"
}
}
La única diferencia estará en el modo en el que ejecutarás los comandos, tal y como veremos.
Instalación de mediante PEAR
De forma alternativa, también puedes instalar PHP_CodeSniffer mediante PEAR con este comando:
pear install PHP_CodeSniffer
Uso de estándares de WordPress
Si estás leyendo este tutorial, seguramente es porque necesitas phpcs
para desarrollar plugins de WordPress, de modo que puedas seguir los estándares que Automattic ha definido para WordPress. Por ello, necesitarás descargarte los archivos que contienen los estándares y reglas que deberías usar ejecutando este comando:
composer global require wp-coding-standards/wpcs
También es recomendable que instales PHPCompatibilityWP, usado para solucionar los problemas de compatibilidad de PHP en diferentes sistemas:
composer global require --dev phpcompatibility/phpcompatibility-wp
Cómo usar PHP_CodeSniffer
Para usar PHP_CodeSniffer en un plugin o tema de WordPress, debes asegurarte de que el archivo phpcs.xml
se encuentra en el directorio raíz del proyecto.
En este enlace puedes encontrar un ejemplo de archivo que ya viene con varias reglas de WordPress configuradas. Puedes copiar el archivo y pegarlo en el directorio raíz de tus temas y plugins:
<?xml version="1.0"?>
<ruleset name="Coding Standards">
<description>Custom coding standards configuration for WordPress plugin development.</description>
<!--
PHPCS flags:
n: Do not print warnings.
s: Show sniff codes in all reports.
p: Show progress of the run.
-->
<arg value="nsp"/>
<!-- Check all files in the current local directory and all subdirectories. -->
<file>.</file>
<!-- Check files with PHP extensions only. -->
<arg name="extensions" value="php"/>
<!-- Use colors in output. -->
<arg value="-colors"/>
<!-- Include WordPress Coding Standards. -->
<rule ref="WordPress">
<!-- Exclude the following rules. -->
<exclude name="Squiz.Commenting.ClassComment.Missing"/>
<exclude name="Squiz.Commenting.FileComment.Missing"/>
<exclude name="Squiz.Commenting.FileComment.MissingPackageTag"/>
<exclude name="Squiz.Commenting.FunctionComment.Missing"/>
<exclude name="Squiz.Commenting.VariableComment.Missing"/>
<exclude name="WordPress.WP.DeprecatedFunctions.sanitize_urlFound"/>
<exclude name="WordPress.WP.EnqueuedResourceParameters.MissingVersion"/>
<exclude name="WordPress.Security.NonceVerification.Missing"/>
</rule>
<rule ref="PHPCompatibilityWP"/>
<config name="testVersion" value="7.4-"/>
<config name="minimum_supported_wp_version" value="5.9"/>
</ruleset>
Para usar phpcs basta con que accedas al directorio raíz de tu tema o plugin y ejecutes este comando para analizar el proyecto entero:
phpcs
En lugar de usar un archivo, también puedes indicar el estándar a usar. Si por ejemplo quieres validar el proyecto según los estándares PSR-12, tendrías que ejecutar el comando tal que así:
phpcs --standard=PSR12
Si has instalado PHP_CodeSniffer localmente, tendrás que ejecutar el comando phpcs
de este modo:
./vendor/bin/phpcs -h
Si quisieses usar el comando con un solo archivo en lugar de ejecutarlo para todo el proyecto debes ejecutar este comando, reemplazando test.php
por el archivo a consultar:
phpcs test.php
O definiendo el estándar a usar:
phpcs --standard=PSR12 /ruta/al/archivo.php
Del mismo modo, también puedes analizar directorios sueltos:
phpcs --standard=PSR12 /ruta/al/directorio
Además, con esta herramienta también podrás corregir los problemas y estilos de tus archivos mediante el comando phpcbf
:
phpcbf
Si has instalado PHP_CodeSniffer localmente, tendrás que ejecutar el comando phpcbf
de este modo:
./vendor/bin/phpcbf -h
También puedes usar el comando con archivos en particular en lugar de ejecutarlo para todo el proyecto:
phpcbf test.php
Para obtener más información, puedes consultar estos enlaces:
- Repositorio: Repositorio de PHP_CodeSniffer en GitHub
Esto ha sido todo, espero que te haya resultado útil.