PHP_CodeSniffer: una biblioteca para mejorar sus estándares de codificación PHP
¿Quiere mejorar sus estándares de codificación PHP? Obviamente, sí. No importa si es un desarrollador PHP más nuevo o experimentado, todos desean mejorar sus estándares de codificación.
¿Pero cómo?
Bueno, hay varios recursos disponibles en Internet que puede leer y comenzar a implementar.
Hay una solución más que no requiere leer sobre codificación estándar. En cambio, le brinda sugerencias para mejorar el tiempo de ejecución de sus estándares al buscar en su archivo PHP. De esta manera es mejor, ya que obtendrá una sugerencia clara junto con el número de línea.
Introducción a PHP_CodeSniffer
Como sugiere el nombre, PHP_CodeSniffer huele el código en sus archivos o carpetas. Dondequiera que huela el código incorrecto, le informa dónde está el código incorrecto y qué pasos debe seguir para corregirlo. PHP_CodeSniffer actúa como su verificador de código PHP.
Es una biblioteca muy recomendada para un programador PHP. Mientras trabaja en un proyecto PHP, no debe entregar su código al cliente final hasta que haya terminado con los estándares de codificación PHP sugeridos por PHP_CodeSniffer.
Después de todo, el programador de PHP debería ofrecer un mejor código y PHP_CodeSniffer lo ayuda a mejorar la codificación.
Instalar PHP_CodeSniffer con Composer
Composer es un administrador de dependencias para PHP. Le permite instalar / actualizar la biblioteca que necesita para su proyecto.
Puede instalar PHP_CodeSniffer en el directorio raíz de su proyecto. Pero, le recomiendo que cree una carpeta ‘php_codesniffer’ en el directorio raíz e instale la biblioteca dentro de esta carpeta.
Para instalar PHP_CodeSniffer usando Composer, abra el símbolo del sistema en el directorio ‘php_codesniffer’ y ejecute el siguiente comando.
composer require "squizlabs/php_codesniffer=*"
Revisemos nuestros estándares de codificación PHP
A continuación, diríjase al php_codesniffer/vendor/bin
directorio desde el símbolo del sistema. Desde esta carpeta bin, comprobaremos nuestros estándares de codificación PHP con PHP_CodeSniffer.
Por ejemplo, supongamos que tenemos un archivo llamado index.php en su proyecto. Mi archivo index.php contiene el siguiente código.
<?php
require_once ("vendor/autoload.php");
require_once ("config.php");
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
));
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Este código se usa para cambiar el tamaño de la imagen en PHP usando la biblioteca TinyPNG. Nuestro código funciona bien y da el resultado esperado. Pero, pasamos por alto algunos estándares de codificación en nuestro archivo.
Averigüemos qué estándar nos falta en el archivo anterior.
Comprobaremos este archivo con PHP_CodeSniffer ejecutando el siguiente comando.
phpcs --standard=PEAR /path/to/your/file
Estamos trabajando en Windows, por lo que en nuestro caso, un comando sería el siguiente.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Aquí ‘–standard = PEAR’ significa que nuestro archivo se comparará con el estándar establecido por PEAR.
Después de ejecutar el comando anterior, obtuvimos algunos errores sobre los estándares de codificación.
Corrija el código utilizando pautas
Tomemos un ejemplo de error.
El segundo error que dice ‘require_once’ es una declaración, no una función: no se requieren paréntesis
Por este error, llegamos a conocer el estándar para incluir archivos externos.
Nuestro siguiente código
require_once ("vendor/autoload.php");
require_once ("config.php");
debería reemplazar con
require_once "vendor/autoload.php";
require_once "config.php";
Este es un ejemplo de corrección de código. En su caso, puede encontrar otros errores. Debe corregirlo siguiendo las instrucciones que recibió.
La biblioteca PHP_CodeSniffer proporciona un comando que corrige automáticamente las violaciones del estándar de codificación. Recuerde, este comando no corrige todos los errores. Se encargará de algunos errores menores como sangría, cierre de paréntesis, etc.
Si observa la captura de pantalla anterior, notará que se encontraron 7 errores en total en nuestro archivo. Después de la lista de errores, vea la línea
‘PHPCBF’ PUEDE ARREGLAR AUTOMÁTICAMENTE LAS 6 VIOLACIONES DE SNIFF MARCADAS
Primer error relacionado con la falta de un comentario de documento de archivo, tenemos que cuidar este comentario de documento. El comando ‘PHPCBF’ no lo corregirá.
Habiendo dicho eso, escribamos el comando para ello.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
En la captura de pantalla, puede ver que se corrigieron 6 errores y queda 1. El error restante está relacionado con el comentario del documento del archivo.
Por lo tanto, agregaremos el comentario del archivo y nuestro código final será el siguiente.
<?php
/**
* This file will generate the resize version of an image
*
* PHP version 5.6.25
*
* @category Resize_Image
* @package TinyPNG
* @author Sajid <[email protected]>
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @link https://artisansweb.net/resize-image-php-using-tinypng
*/
require_once "vendor/autoload.php";
require_once "config.php";
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
)
);
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Ahora, si ejecutamos el script ‘phpcs’, no obtendremos ningún error de estándares de codificación PHP.
Nota: PHP_CodeSniffer también valida sus archivos JS y CSS.