En el primer artículo de esta serie, definimos los olores de código y observamos algunos ejemplos de lo que son y cómo podemos refactorizarlos para mejorar la calidad del código. Recordar:
[A] olor de código, también conocido como mal olor, en el código de programación de computadoras, se refiere a cualquier síntoma en el código fuente de un programa que posiblemente indique un problema más profundo.
En última instancia, estamos trabajando para implementar reglas de detección de código específicas de WordPress, pero antes de hacerlo es importante que se familiarice con PHP CodeSniffer.
En este artículo, vamos a echar un vistazo a lo que es PHP CodeSniffer, cómo instalarlo, cómo ejecutarlo en un script de ejemplo y cómo refactorizar dicho script. Luego veremos cómo vamos a avanzar hacia el código específico de WordPress.
Si tiene configurado un entorno de desarrollo local, entonces genial; Si no, está bien. Proporcionaré algunos enlaces que lo pondrán en funcionamiento rápidamente..
Dicho esto, vamos a empezar.
Antes de comenzar, es importante que tenga algún tipo de entorno de desarrollo local, incluso si esto solo incluye una copia del intérprete de PHP.
Tenga en cuenta que si está ejecutando una variante de Linux o OS X, existe la posibilidad de que ya tenga PHP instalado. Si lo hace, entonces no necesita preocuparse por nada más en esta sección. Para determinar si tiene instalado PHP, ejecute el siguiente comando en la línea de comandos:
$ php -v
Debería ver algo como lo siguiente (aunque su salida puede ser diferente según la versión de PHP que haya elegido ejecutar):
PHP 5.6.10 (cli) (construido: 6 de julio de 2015 14:28:54) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Si está más avanzado y tiene varias copias del proyecto instaladas, entonces puede ejecutar:
$ que php
Y deberías ver algo como esto:
/Aplicaciones/MAMP/bin/php/php5.6.10/bin/php
Aunque su salida variará dependiendo de dónde esté instalada su copia de PHP.
Aunque esta serie está dirigida principalmente a principiantes, puede que algunos de ustedes se sientan cómodos descargando una copia de PHP e instalándola en su sistema. Si este eres tu, entonces toma una copia de PHP de la página de inicio del proyecto, instálala y vuelve a este tutorial.
Si, por otro lado, esto es nuevo para usted, entonces puede elegir usar uno de los instaladores para su sistema operativo en la página de inicio de PHP vinculada anteriormente o una de las utilidades proporcionadas a continuación.
Todos estos paquetes tienen sus propios instaladores e instalarán PHP, MySQL y Apache. Como se mencionó anteriormente, nos interesa principalmente tener una copia de PHP disponible en nuestro sistema.
Una vez que estén instalados, intente ejecutar los comandos mencionados en la primera parte de esta sección (o el equivalente de su sistema) y debería ver resultados similares.
Si no lo hace, es probable que deba agregar la ruta a PHP a sus variables de entorno. Esto está fuera del alcance de este tutorial, así que consulte la documentación de la versión del proyecto que instaló..
Con PHP ya instalado, estamos listos para comenzar a capturar y limpiar nuestros olores de código.
Puede encontrar el software oficial PHP CodeSniffer en GitHub.
De la documentación del proyecto:
PHP_CodeSniffer es un conjunto de dos scripts PHP; el principalphpcs
script que tokeniza archivos PHP, JavaScript y CSS para detectar violaciones de un estándar de codificación definido, y un segundophpcbf
Script para corregir automáticamente las violaciones estándar de codificación. PHP_CodeSniffer es una herramienta de desarrollo esencial que garantiza que su código se mantenga limpio y consistente..
Si nunca has visto algo como esto antes, suena realmente genial, ¿no es así? Quiero decir, es una herramienta que pretende ayudar a garantizar que exista un cierto nivel de calidad en su código.!
Aunque el proyecto menciona lenguajes como CSS y JavaScript, en esta serie estamos enfocados en PHP. Esto no significa que no sea importante comprobar la calidad de esos archivos de idioma en particular en sus proyectos, aunque.
Por muy bueno que parezca, todavía plantea las preguntas: ¿Cómo instalamos el software y cómo empezamos a revisar nuestro código??
Vamos a responder a estas dos preguntas ahora.
Si realizas una búsqueda en Google sobre cómo instalar PHP CodeSniffer, es probable que obtengas una variedad de resultados, muchos de los cuales incluirán el uso de algo llamado Pear.
Pear fue una vez el sistema de distribución de paquetes de facto para las bibliotecas de PHP, y aunque muchos paquetes todavía están disponibles a través del software, también se están retirando de otros paquetes populares (como PHPUnit).
Por este motivo, a menudo recomiendo usar otros métodos de instalación cuando estén disponibles. Esto incluye el uso de herramientas como Composer, que es posiblemente el software de administración de dependencias más popular para PHP.
Si nunca has usado Composer antes, no te preocupes. Proporcionaré todos los pasos que necesita para que PHP CodeSniffer esté en funcionamiento en su máquina con Composer y con un mínimo de trabajo. Si está interesado en aprender más, tenemos bastantes tutoriales sobre cómo usar Composer, así que no dude en consultarlos..
Antes de instalar PHP CodeSniffer, necesitamos instalar Composer. Por suerte, es muy fácil hacerlo una vez que tenga PHP en funcionamiento en su máquina local.
Para instalar Composer, puede descargar este archivo y luego ejecutar el siguiente comando en la línea de comandos desde donde descargó el instalador de Composer:
$ php composer-setup.php --install-dir = bin --filename = composer
Una nota de las instrucciones de instalación de Composer:
Puede instalar Composer en un directorio específico usando el--install-dir
Opción y adicionalmente (re) nombre también usando el--nombre del archivo
opción.
Para obtener más información, no dude en consultar las instrucciones de descarga o ver el proyecto completo en GitHub.
Una vez que está instalado, ahora puede usar Composer para instalar dependencias de terceros, como PHP CodeSniffer, en sus proyectos. Tome nota de dónde ha instalado su copia de Composer, sin embargo. Deberá consultarla cuando la ejecute, ya que la ejecutaremos desde la línea de comandos..
De todos modos, vamos a seguir adelante y crear un directorio desde el que vamos a ejecutar nuestros scripts de PHP. Aunque todavía no tenemos nada en este directorio, necesitamos crear un archivo llamado compositor.json
.
Voy a llamar a mi directorio tutsplus-demo
, e incluiré mi archivo Composer en ese directorio para comenzar.
Una vez que haya creado el archivo, coloque el siguiente código en el archivo JSON:
"require": "squizlabs / php_codesniffer": "2. *"
En resumen, esto le dice a Composer que instale PHP CodeSniffer cuando ejecute el comando correcto. Tenga en cuenta que el exigir
Directiva hace lo siguiente:
Enumera los paquetes requeridos por este paquete. El paquete no se instalará a menos que esos requisitos puedan cumplirse.
Puedes leer más sobre el esquema Composer en la documentación..
Una vez que Composer está instalado y una vez que tienes tu compositor.json
archivo que se parece al código anterior, es hora de instalar PHP CodeSniffer. Desde la línea de comando, emita el siguiente comando:
$ actualización del compositor
Tenga en cuenta que esto se basa en la idea de que Composer está disponible públicamente en su sistema. De lo contrario, puede ejecutarlo escribiendo la ruta completa al archivo instalado o puede agregarlo a sus variables de entorno y luego reiniciar su sesión de terminal para recargar las variables.
Una vez que Composer haya terminado de trabajar, deberías ver algo como esto:
Y tu código tutsplus
El directorio ahora debería verse así:
Tenga en cuenta específicamente que tiene un directorio de proveedores. Esto significa que Composer instaló correctamente PHP CodeSniffer. En este punto, estamos listos para evaluar nuestro código PHP.
Primero, tomemos un script de ejemplo. El que veremos se puede encontrar en esta respuesta en Desbordamiento de pila.
Crea un archivo en tu tutsplus-demo
directorio y nombre muestra.php
. Luego, asegúrese de que el archivo contenga los siguientes contenidos:
Guarda tu trabajo. A continuación, podemos ejecutar PHP CodeSniffer desde la línea de comandos y hacer que evalúe el código en el script anterior utilizando el conjunto estándar de reglas.
Desde su terminal, ingrese el siguiente comando:
$ vendor / bin / phpcs sample.php
Esto debería generar una salida que contenga lo siguiente:
Skyhopper5: tutsplus-demo tommcfarlin $ vendor / bin / phpcs sample.php ARCHIVO: /Users/tommcfarlin/Desktop/tutsplus-demo/sample.php --------------------- -------------------------------------------------- - ENCONTRADO 4 ERRORES QUE AFECTAN A 4 LÍNEAS ------------------------------------------- --------------------------- 2 | ERROR | [] Falta el archivo doc comentario 5 | ERROR | [x] No se encontró espacio después de la coma en la llamada de función 7 | ERROR | [] Se esperaba "si (...) \ n"; encontrado "si (...) \ n" 9 | ERROR | [] Se esperaba "si (...) \ n"; encontrado "if (...) \ n" ---------------------------------------- ------------------------------ PHPCBF PUEDE FIJAR AUTOMÁTICAMENTE LAS 1 VIOLACIONES DE SNIFF MARCADAS ----------- -------------------------------------------------- --------- Tiempo: 46ms; Memoria: 3.5Mb Skyhopper5: tutsplus-demo tommcfarlin $
Observe que encontró cuatro errores. La primera columna le dice en qué línea está el error, la segunda columna indica que es un error (en lugar de una advertencia) y luego el resto le dice qué esperaba ver y qué vio realmente.
Así que vamos a limpiar el archivo basado en esos errores. En términos generales, tenemos que hacer lo siguiente:
Si
declaraciones en el guión.El resultado final sería algo como esto:
* @license http://opensource.org/licenses/gpl-license.php Licencia pública GNU * @link http://is.gd/dq0DhO * @since 1.0.0 * / $ target_dir = "uploads /"; $ target_file = $ target_dir. nombre base ($ _ ARCHIVOS ["fileToUpload"] ["nombre"]); $ uploadOk = 1; $ imageFileType = pathinfo ($ target_file, PATHINFO_EXTENSION); // Compruebe si el archivo de imagen es una imagen real o una imagen falsa si (isset ($ _ POST ["submit"])) $ check = getimagesize ($ _ FILES ["fileToUpload"] ["tmp_name"]); if ($ check! == false) echo "El archivo es una imagen -". $ cheque ["mimo"]. "." $ uploadOk = 1; else echo "El archivo no es una imagen."; $ uploadOk = 0; ?>
A continuación, ejecute el script nuevamente y no debería obtener ningún resultado. Es decir, se le debe presentar el símbolo del sistema estándar. A veces, esto significa que algo está roto, pero en este caso significa que todo está funcionando como se espera
No esta mal cierto?
Ahora imagine lo que esto podría hacer para bases de código y scripts más grandes con los que está trabajando a diario.
Por más importante que sea evaluar nuestro código, evitar los olores del código y apuntar a la mayor calidad posible, las herramientas como PHP CodeSniffer no deben utilizarse como muletas. Eso significa que no tenemos una excusa para escribir código incorrecto porque otra herramienta lo detectará.
Porque no siempre lo hará..
En su lugar, esto se entiende como un segundo paso de tipo. Es decir, está destinado a detectar cosas que podemos perder al escribir código la primera, segunda o novena vez. Lo bueno de este programa en particular es que puede cargar diferentes reglas en PHP CodeSniffer dependiendo del entorno, el marco o la biblioteca con la que está trabajando..
Y eso es exactamente lo que vamos a hacer con WordPress en el siguiente artículo.
En lo que respecta al material introductorio, hemos cubierto un poco de terreno en este tutorial. Es decir, hemos analizado la configuración de un entorno de desarrollo básico en nuestra máquina local que incluye PHP.
A continuación, hemos examinado Composer y cómo instalarlo en nuestro sistema. Hemos escrito nuestro primer archivo Composer para recuperar dependencias, a saber, PHP CodeSniffer, e incluso hemos evaluado y corregido los resultados que nos proporciona el software..
Si usted es principalmente un desarrollador de PHP, espero que los primeros dos artículos de la serie hayan sido útiles, pero si usted es un desarrollador de WordPress, tenemos algo más que cubrir..
En el artículo final de la serie, vamos a centrar nuestra atención en WordPress. Debido a que tiene su propio conjunto de estándares de codificación, vamos a ver cómo cargar estas reglas en PHP CodeSniffer y luego evaluar los complementos, el código del tema, etc. para obtener una idea de cómo usar esto en nuestro día. Trabajo de hoy en nuestros proyectos de WordPress..
Antes de continuar con el próximo artículo, revise el código anterior y asegúrese de que tiene PHP y PHP CodeSniffer instalado y que está familiarizado con su funcionamiento, ya que vamos a vincular todo esto.
Finalmente, puede revisar todos mis cursos y tutoriales en mi página de perfil, y puede seguirme en mi blog y / o Twitter en @tommcfarlin donde hablo sobre varias prácticas de desarrollo de software, especialmente en el contexto de WordPress..
No dude en dejar sus preguntas o comentarios en el feed a continuación, y trataré de responder a cada una de ellas..