Cómo instalar PHP_CodeSniffer

PHPWordPress

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.

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:

Además también puedes instalar PHP usando alguno de estos paquetes:

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:

  1. Abre la terminal de comandos y ejecuta este comando par actualizar la dependencias de PHP:
    composer self-update && composer global update
  2. Luego ejecuta este otro comando para descargar PHP_CodeSniffer:
    composer global require "squizlabs/php_codesniffer=*"
  3. 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.

  4. 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:

Esto ha sido todo, espero que te haya resultado útil.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”