PHP_CodeSniffer – Una libreria per migliorare i tuoi standard di codifica PHP
Vuoi migliorare i tuoi standard di codifica PHP? Ovviamente sì. Non importa che tu sia uno sviluppatore PHP più fresco o esperto, tutti desiderano migliorare i propri standard di codifica.
Ma come?
Bene, ci sono diverse risorse disponibili su Internet che puoi leggere e iniziare a implementare.
C’è un’altra soluzione che non richiede di leggere sulla codifica standard. Invece, ti dà suggerimenti per migliorare il tuo runtime standard esaminando il tuo file PHP. In questo modo è migliore in quanto otterrai il suggerimento chiaro insieme al numero di riga.
Introduzione a PHP_CodeSniffer
Come suggerisce il nome, PHP_CodeSniffer fiuta il codice nei tuoi file o cartelle. Ovunque, sente l’odore del codice errato che ti fornisce un rapporto su dove si trova il codice errato e quali passaggi dovresti intraprendere per correggerlo. PHP_CodeSniffer agisce come il tuo correttore di codice PHP.
È una libreria altamente consigliata per un programmatore PHP. Mentre lavori su un progetto PHP, non dovresti consegnare il tuo codice al client finale finché non hai finito con gli standard di codifica PHP suggeriti da PHP_CodeSniffer.
Dopotutto, il programmatore PHP dovrebbe fornire un codice migliore e PHP_CodeSniffer ti aiuta per una migliore codifica.
Installa PHP_CodeSniffer usando Composer
Composer è un gestore delle dipendenze per PHP. Ti permette di installare/aggiornare la libreria di cui hai bisogno per il tuo progetto.
Puoi installare PHP_CodeSniffer nella directory principale del tuo progetto. Tuttavia, ti consiglio di creare una cartella "php_codesniffer" nella directory principale e installare la libreria all’interno di questa cartella.
Per installare PHP_CodeSniffer utilizzando il compositore, apri il prompt dei comandi nella directory "php_codesniffer" ed esegui il comando seguente.
composer require "squizlabs/php_codesniffer=*"
Controlliamo i nostri standard di codifica PHP
Quindi, vai alla php_codesniffer/vendor/bin
directory dal prompt dei comandi. Da questa cartella bin, controlleremo i nostri standard di codifica PHP rispetto a PHP_CodeSniffer.
Ad esempio, supponiamo di avere un file chiamato index.php nel tuo progetto. Il mio file index.php contiene il codice seguente.
<?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;
?>
Questo codice utilizzato per ridimensionare l’immagine in PHP utilizzando la libreria TinyPNG. Il nostro codice funziona correttamente e fornisce un risultato atteso. Ma abbiamo perso alcuni standard di codifica nel nostro file.
Scopriamo quale standard ci manca nel file di cui sopra.
Verificheremo questo file rispetto a PHP_CodeSniffer eseguendo il comando seguente.
phpcs --standard=PEAR /path/to/your/file
Stiamo lavorando su Windows, quindi nel nostro caso, un comando sarebbe il seguente.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Qui ‘–standard=PEAR’ significa che il nostro file verrà confrontato con lo standard impostato da PEAR.
Dopo aver eseguito il comando precedente, abbiamo riscontrato alcuni errori sugli standard di codifica.
Correggi il codice utilizzando le linee guida
Facciamo un esempio di errore.
Il secondo errore che dice ‘require_once’ è un’istruzione, non una funzione: non sono necessarie parentesi
Con questo errore, veniamo a conoscenza dello standard per l’inclusione di file esterni.
Il nostro codice qui sotto
require_once ("vendor/autoload.php");
require_once ("config.php");
dovrebbe sostituire con
require_once "vendor/autoload.php";
require_once "config.php";
Questo è un esempio di correzione del codice. Nel tuo caso, potresti trovare altri errori. Dovresti correggerlo seguendo le istruzioni che hai ricevuto.
La libreria PHP_CodeSniffer fornisce un comando che corregge automaticamente le violazioni degli standard di codifica. Ricorda, questo comando non corregge tutti gli errori. Si occuperà di alcuni errori minori come il rientro, le parentesi chiuse, ecc.
Se guardi lo screenshot qui sopra, noterai che nel nostro file sono stati trovati 7 errori in totale. Dopo l’elenco degli errori, vedere la riga
‘PHPCBF’ PU RISOLVERE AUTOMATICAMENTE LE 6 VIOLAZIONI SNIFF SEGNATE
Primo errore relativo al commento del file mancante, dobbiamo occuparci di questo commento al documento. Il comando ‘PHPCBF’ non lo correggerà.
Detto questo, scriviamo il comando per esso.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
Nello screenshot, puoi vedere che ha risolto 6 errori e 1 è rimasto. L’errore rimanente è correlato al commento del documento del file.
Quindi, aggiungeremo il file commentando e il nostro codice finale sarà il seguente.
<?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;
?>
Ora, se eseguiamo lo script ‘phpcs’ non otterremo alcun errore degli standard di codifica PHP.
Nota: PHP_CodeSniffer convalida anche i tuoi file JS e CSS.