PHP CodeSniffer para Sublime Text

Desde que llevo inmerso en el mundo del desarrollo de software he visto cómo han ido evolucionando todos los componentes que intervienen en este proceso: lenguajes de programación, editores, hardware, estilos de diseño, etc.

Hoy en día existe una gran cantidad de lenguajes de programación, cada uno de ellos creado para resolver algún tipo de problema en concreto o para mejorar alguno existente. Es por este motivo que, a diferencia de como ocurría en el pasado que podías especializarte en uno o dos únicos lenguajes, los desarrolladores hoy en día se ven en la necesidad de controlar el máximo número de ellos (por curiosidad personal o porque el puesto de trabajo lo requiere).

La mayoría de programadores sabe que la continua formación es imprescindible en nuestro trabajo. Ahora bien, el problema en este proceso de aprendizaje es que muchas veces, por la falta de tiempo, se hace a prisa y corriendo. En este punto surge un gran hándicap que nos afectará en el futuro y del que no somos conscientes al momento, la forma de programar. En mi caso en particular, me ha tocado mantener tanto código propio como ajeno y en algún caso me ha resultado bastante complicado ya que no entendía ni lo que yo mismo había hecho hace 5 o 6 años.

Llegados a este punto, quiero recalcar la importancia de saber programar, una cosa es conocer la sintaxis y otra muy diferente saber cómo estructurarla de una forma ordenada y mantenible. Para solucionar este problema generalizado, han aparecido los llamados estándares de código.

¿Qué es un estándar de código?

Es una forma de normalizar la programación de tal manera que siga una serie de reglas conocidas por todos, con esto se consigue que cualquier persona pueda entender el código, aunque no haya participado en su creación.

Algunos de los objetivos que buscan son: definir la organización del código de un programa, la forma de declarar variables, clases, métodos, etc.

PHPCS – PHP CodeSniffer

Phpcs es un validador de código que comprueba el cumplimiento de las reglas de un estándar. Es una herramienta que nos va a ayudar a escribir buen código mostrándonos las líneas que no cumplan con alguna regla del estándar elegido.

Es un software que puede integrarse con editores como sublime text, atom, vim, etc. En mi caso el editor que uso es Sublime Text y por tanto voy a explicar cómo podemos integrar el plugin de PHP CodeSniffer en él.

Instalar el plugin PHP CodeSniffer en Sublime Text

Lo primero que tienes que hacer es descargar los siguientes ejecutables requeridos por el plugin:

  • PHP Code Sniffer: El script principal para la detección de la violación de reglas de un estándar.
  • PHP Mess Detector: Detecta posibles bugs, parámetros, funciones o propiedades no usados, etc.
  • PHP CS Fixer: Herramienta para corregir automáticamente los errores detectados.
  • PHP Beautifier: Utilidad para reformatear y embellecer PHP.

Una vez descargados todos los ejecutables, los alojamos en alguna ruta de nuestro sistema, en mi caso: F:\Proyectos\PhpcsDependencies\

El siguiente paso es instalar el plugin en Sublime Text, para ello, debes tener activado el control de paquetes (las instrucciones para hacerlo las puedes encontrar en el siguiente enlace) Accede a él mediante el menú “Preferences” -> “Package Control” y busca la opción “Install Package

PHP CodeSniffer para Sublime Text | Blog Conasa

En la siguiente pantalla buscamos “PHPCS” e instalamos pulsando enter:

 

PHP CodeSniffer para Sublime Text | Blog Conasa

 

Configurar PHP CodeSniffer

Accede a la configuración por defecto del plugin a través del menú “Preferences”->”Package Settings”->”PHP Code Sniffer”->”Settings – Default”, copia el contenido y pégalo en “Preferences”->”Package Settings”->”PHP Code Sniffer”->”Settings – User” donde podrás agregar tu configuración personalizada.

Los parámetros que debemos configurar son:

  1. Rutas para el ejecutable de php:

phpcs_php_prefix_path“: “C:\\xampp\\php\\php.exe”

phpcs_php_path“: “C:\\xampp\\php\\php.exe”

  1. Ruta al script de PHP CodeSniffer:

phpcs_executable_path“: “F:\\Proyectos\\PhpcsDependencies\\PHP_CodeSniffer\\scripts\\phpcs.bat”

  1. Ruta a PHP CS Fixer:

php_cs_fixer_executable_path“: “F:\\Proyectos\\PhpcsDependencies\\php-cs-fixer.phar”

  1. Ruta a PHP Beautifier:

phpcbf_executable_path“: “F:\\Proyectos\\PhpcsDependencies\\PHP_CodeSniffer\\scripts\\phpcbf.phar”

  1. Ruta a PHP Mess Detector:

phpmd_executable_path“: “F:\\Proyectos\\PhpcsDependencies\\phpmd\\src\\bin\\phpmd.bat”

Por defecto el estándar configurado es PSR-2, recomendado para PHP y empleado por frameworks como Laravel o Symfony.

Una cosa a tener en cuenta es que si usamos Windows los separadores en las rutas deben ser “\\” mientras que para Linux o Mac serán “/”

Probando PHP CodeSniffer

Una vez configurado el plugin podemos verlo en acción al guardar cualquier archivo. Si no cumple alguna regla nos mostrará un panel con los errores detectados.

PHP CodeSniffer para Sublime Text | Blog Conasa

En este punto podemos optar por 2 opciones:

  1. Corregir manualmente los errores con las indicaciones mostradas
  2. Ejecutar la utilidad PHP CS Fixer para corregirlos automáticamente. Para esta opción debemos hacer clic derecho en el archivo y elegir “PHP Code Sniffer”->”Fix this file”->”PHP-CS-Fixer” y observar como el archivo se actualiza correctamente.

PHP CodeSniffer para Sublime Text | Blog Conasa

Conclusiones

Como hemos podido ver en este post, existen herramientas que nos ayudan en nuestro trabajo, en concreto, PHPCS nos ayuda escribir un mejor código basado en reglas conocidas por todos.

Seguir un estándar de código es muy necesario en un mundo de desarrollo tan cambiante y en el que pueden intervenir muchos miembros. Crear tu propio estilo o escribir código ilegible con el fin de que nadie te pueda sustituir es un gran error que puede revertir en tu contra. Por todo esto, animo a utilizar herramientas o plugins que nos ayuden a ser mejores profesionales y a escribir un código de calidad.

Más información sobre PHP CodeSniffer:

http://es.slideshare.net/PiXeL16/estandares-de-codigo-emanuel

https://platzi.com/blog/escribir-buen-codigo/

https://styde.net/instalar-php-code-sniffer-en-sublime-text/

https://styde.net/organizar-codigo-php-cs-fixer-siguiendo-los-estandares-psr/

https://github.com/benmatselby/sublime-phpcs/blob/master/example-settings/windows-7-phpcs-fixer-linter.example

También te puede interesar

The following two tabs change content below.

Fausto López

Soy una persona alegre, positiva, en formación continua, responsable e implicado en todo lo que hago. En lo personal soy muy familiar, me encanta bailar, ir al cine y viajar.
Compartir: