Nel primo articolo di questa serie, abbiamo definito gli odori del codice e abbiamo esaminato alcuni esempi di cosa sono e in che modo li possiamo refactoring in modo da migliorare la qualità del codice. Richiamare:
[A] odore di codice, noto anche come un cattivo odore, nel codice di programmazione del computer, si riferisce a qualsiasi sintomo nel codice sorgente di un programma che forse indica un problema più profondo.
In definitiva, stiamo lavorando per implementare le regole di sniffing del codice specifiche di WordPress, ma prima di farlo è importante familiarizzare con PHP CodeSniffer.
In questo articolo, daremo un'occhiata a ciò che PHP CodeSniffer è, come installarlo, come eseguirlo su uno script di esempio e come rifattorizzare detto script. Poi vedremo come andremo avanti nel codice specifico di WordPress.
Se hai un ambiente di sviluppo locale impostato, allora ottimo; se no, va bene. Fornirò alcuni collegamenti che ti consentiranno di iniziare rapidamente.
Detto ciò, iniziamo.
Prima di iniziare, è importante disporre di un tipo di ambiente di sviluppo locale, anche se questo include solo una copia dell'interprete PHP.
Nota che se stai usando una variante di Linux o OS X, c'è una possibilità che tu abbia già installato PHP. Se lo fai, allora non devi preoccuparti di nient'altro in questa sezione. Per determinare se hai installato PHP, esegui il seguente comando sulla riga di comando:
$ php -v
Dovresti vedere qualcosa di simile al seguente (anche se l'output potrebbe essere diverso in base alla versione di PHP che hai scelto di eseguire):
PHP 5.6.10 (cli) (compilato: 6 Lug 2015 14:28:54) Copyright (c) 1997-2015 Il gruppo PHP Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Se sei più avanzato e hai installato più copie del progetto, puoi eseguire:
$ quale php
E dovresti vedere qualcosa di simile a questo:
/Applications/MAMP/bin/php/php5.6.10/bin/php
Anche se l'output varierà in base a dove è installata la tua copia di PHP.
Sebbene questa serie sia rivolta principalmente ai principianti, ci sono alcuni di voi che si trovano a proprio agio nel download di una copia di PHP e nell'installazione sul proprio sistema. Se sei tu, prendi una copia di PHP dalla homepage del progetto, installala e torna a questo tutorial.
Se, d'altra parte, questo è nuovo per te, puoi scegliere di utilizzare uno dei programmi di installazione per il tuo sistema operativo nella home page PHP linkata sopra o una delle utility fornite di seguito.
Tutti questi pacchetti hanno i propri programmi di installazione e installano PHP, MySQL e Apache. Come accennato in precedenza, ci interessa principalmente avere una copia di PHP disponibile sul nostro sistema.
Una volta installati, prova a eseguire i comandi menzionati nella prima parte di questa sezione (o l'equivalente del tuo sistema) e dovresti vedere un output simile.
Se non lo fai, probabilmente dovrai aggiungere il percorso di PHP alle tue variabili ambientali. Questo è al di fuori dello scopo di questo tutorial, quindi consulta la documentazione per la versione del progetto che hai installato.
Con PHP ora installato, siamo pronti per iniziare a catturare e ripulire i nostri odori di codice.
Puoi trovare il software PHP CodeSniffer ufficiale su GitHub.
Dalla documentazione del progetto:
PHP_CodeSniffer è un insieme di due script PHP; il principalephpcs
script che converte i file PHP, JavaScript e CSS per rilevare le violazioni di uno standard di codifica definito e un secondophpcbf
script per correggere automaticamente le violazioni standard di codifica. PHP_CodeSniffer è uno strumento di sviluppo essenziale che garantisce che il codice rimanga pulito e coerente.
Se non hai mai visto nulla di simile prima, sembra davvero pulito, vero? Voglio dire, è uno strumento pensato per aiutare a garantire un certo livello di qualità nel tuo codice!
Sebbene il progetto menzioni linguaggi come CSS e JavaScript, siamo focalizzati su PHP in questa serie. Ciò non significa che non sia importante controllare la qualità di quei particolari file di lingua nei tuoi progetti, però.
Per quanto possa sembrare fantastico, solleva ancora le domande: come installiamo il software e come possiamo iniziare a controllare il nostro codice?
Rispondiamo a entrambe le domande ora.
Se dovessi eseguire una ricerca su Google su come installare PHP CodeSniffer, probabilmente otterrai una varietà di risultati, molti dei quali includeranno l'uso di qualcosa chiamato Pear.
Pear era una volta il sistema di distribuzione dei pacchetti di fatto per le librerie PHP, e sebbene molti pacchetti siano ancora disponibili attraverso il software, è stato ritirato anche da altri pacchetti popolari (come PHPUnit).
Per questo motivo, consiglio spesso di usare altri metodi di installazione quando sono disponibili. Ciò include l'utilizzo di strumenti come Composer, che è probabilmente il software di gestione delle dipendenze più popolare per PHP.
Se non hai mai usato Composer in precedenza, non preoccuparti. Fornirò tutti i passaggi necessari per far funzionare PHP CodeSniffer sul tuo computer con Composer e con un lavoro minimo. Se sei interessato a saperne di più, abbiamo un bel po 'di tutorial su come usare Composer, quindi sentiti libero di controllarli.
Prima di installare PHP CodeSniffer, è necessario installare effettivamente Composer. Fortunatamente, è molto facile farlo dopo aver installato PHP sul tuo computer locale.
Per installare Composer, è possibile scaricare questo file e quindi eseguire il seguente comando sulla riga di comando da qualsiasi punto in cui è stato scaricato il programma di installazione di Composer:
$ php composer-setup.php --install-dir = bin --filename = compositore
Una nota dalle istruzioni di installazione di Composer:
È possibile installare Composer in una directory specifica utilizzando--install-dir
opzione e inoltre (ri) nominarlo usando il--nome del file
opzione.
Per ulteriori informazioni, sentiti libero di fare riferimento alle istruzioni per il download o visualizzare l'intero progetto su GitHub.
Una volta installato, ora puoi usare Composer per installare dipendenze di terze parti, come ad esempio CodeSniffer di PHP, nei tuoi progetti. Prendi nota di dove hai installato la tua copia di Composer, però. Dovrai fare riferimento ad esso quando lo esegui dal momento che lo eseguiremo dalla riga di comando.
Ad ogni modo, andiamo avanti e creiamo una directory dalla quale eseguiremo i nostri script PHP. Anche se non avremo ancora nulla in questa directory, dobbiamo creare un file chiamato composer.json
.
Chiamerò la mia directory tutsplus-demo
, e includerò il mio file Composer in quella directory per iniziare.
Una volta creato il file, inserire il seguente codice nel file JSON:
"require": "squizlabs / php_codesniffer": "2. *"
In breve, questo dice a Composer di installare PHP CodeSniffer quando si esegue il comando corretto. Si noti che il richiedere
direttiva fa quanto segue:
Elenca i pacchetti richiesti da questo pacchetto. Il pacchetto non verrà installato a meno che tali requisiti non possano essere soddisfatti.
Puoi leggere ulteriori informazioni sullo schema Composer nella documentazione.
Una volta installato Composer e una volta ottenuto il tuo composer.json
file simile al codice sopra, è ora di installare PHP CodeSniffer. Dalla riga di comando, emettere il seguente comando:
$ compositore di aggiornamento
Nota che questo è basato sull'idea che Composer è disponibile pubblicamente sul tuo sistema. In caso contrario, è possibile eseguirlo digitando il percorso completo del file installato o aggiungendolo alle variabili ambientali e quindi riavviare la sessione del terminale per ricaricare le variabili.
Una volta che il compositore ha finito di funzionare, dovresti vedere qualcosa di simile a questo:
E il tuo tutsplus-code
la directory dovrebbe ora assomigliare a questa:
Si noti in particolare che si dispone di una directory del fornitore. Ciò significa che Composer ha correttamente installato PHP CodeSniffer. A questo punto, siamo pronti a valutare il nostro codice PHP.
Innanzitutto, prendiamo uno script di esempio. Quello che stiamo andando a guardare può essere trovato in questa risposta su Stack Overflow.
Crea un file nel tuo tutsplus-demo
directory e chiamarlo sample.php
. Quindi, assicurarsi che il file contenga i seguenti contenuti:
Salva il tuo lavoro. Successivamente, possiamo eseguire PHP CodeSniffer dalla riga di comando e farlo valutare il codice nello script sopra usando il set standard di regole.
Dal tuo terminale, inserisci il seguente comando:
$ vendor / bin / phpcs sample.php
Questo dovrebbe generare un output che contenga quanto segue:
Skyhopper5: tutsplus-demo tommcfarlin $ vendor / bin / phpcs sample.php FILE: /Users/tommcfarlin/Desktop/tutsplus-demo/sample.php ------------------- -------------------------------------------------- - TROVATO 4 ERRORI CHE INFLUENZANO 4 LINEE ------------------------------------------- --------------------------- 2 | ERRORE | [] Commento del file file mancante 5 | ERRORE | [x] Nessuno spazio trovato dopo la virgola nella chiamata di funzione 7 | ERRORE | [] Previsto "if (...) \ n"; trovato "if (...) \ n" 9 | ERRORE | [] Previsto "if (...) \ n"; trovato "if (...) \ n" ---------------------------------------- ------------------------------ PHPCBF PU CAN FISSARE AUTOMATICAMENTE LE 1 VIOLAZIONI SNIFF SEGNALATE ----------- -------------------------------------------------- --------- Tempo: 46ms; Memoria: 3.5Mb Skyhopper5: tutsplus-demo tommcfarlin $
Si noti che ha rilevato quattro errori. La prima colonna indica quale riga è presente l'errore, la seconda colonna indica che si tratta di un errore (rispetto a un avviso), quindi il resto ti dice cosa si aspettava di vedere rispetto a ciò che effettivamente vedeva.
Quindi puliamo il file basandoci su quegli errori. In generale, dobbiamo fare quanto segue:
Se
affermazioni nella sceneggiatura.Il risultato finale sarebbe simile a questo:
* @license http://opensource.org/licenses/gpl-license.php GNU Public License * @link http://is.gd/dq0DhO * @since 1.0.0 * / $ target_dir = "uploads /"; $ target_file = $ target_dir. basename ($ _ FILES [ "fileToUpload"] [ "nome"]); $ uploadOk = 1; $ imageFileType = pathinfo ($ target_file, PATHINFO_EXTENSION); // Controlla se il file immagine è un'immagine reale o un'immagine falsa se (isset ($ _ POST ["submit"])) $ check = getimagesize ($ _ FILES ["fileToUpload"] ["tmp_name"]); if ($ check! == false) echo "File è un'immagine -". $ check ["mime"]. ""; $ uploadOk = 1; else echo "Il file non è un'immagine."; $ uploadOk = 0; ?>
Quindi, eseguire di nuovo lo script e non si dovrebbe ottenere alcun output. Cioè, dovresti essere presentato con il prompt dei comandi standard. A volte questo significa che qualcosa è rotto, ma in questo caso significa che tutto sta funzionando come previsto
Non male, giusto?
Ora immagina cosa potrebbe fare questo per basi di codice e script più grandi con cui stai lavorando ogni giorno.
Per quanto sia importante valutare il nostro codice, evitare odori di codice e puntare alla massima qualità possibile, strumenti come PHP CodeSniffer non sono pensati per essere usati come stampelle. Ciò significa che non abbiamo una scusa per scrivere codice errato perché un altro strumento lo catturerà.
Perché non sempre lo farà.
Invece, questo è inteso come una seconda passata di sorta. Cioè, ha lo scopo di catturare cose che potremmo perdere quando scriviamo il codice la prima, la seconda o la nona volta. La cosa bella di questo particolare programma è che puoi caricare regole diverse in CodeSniffer PHP a seconda dell'ambiente, del framework o della libreria con cui stai lavorando.
E questo è esattamente ciò che faremo con WordPress nel prossimo articolo.
Per quanto riguarda il materiale introduttivo, abbiamo coperto un po 'di terreno in questo tutorial. Cioè, abbiamo guardato alla creazione di un ambiente di sviluppo di base sul nostro computer locale che include PHP.
Successivamente, abbiamo dato un'occhiata a Composer e come installarlo sul nostro sistema. Abbiamo scritto il nostro primo file Composer per il recupero delle dipendenze, ovvero PHP CodeSniffer, e abbiamo persino valutato e corretto i risultati forniti dal software.
Se sei principalmente uno sviluppatore PHP, allora spero che i primi due articoli della serie siano stati utili, ma se sei uno sviluppatore WordPress, abbiamo ancora un po 'di copertura.
Nell'articolo finale della serie, rivolgeremo la nostra attenzione su WordPress. Dato che ha un proprio set di standard di codifica, vedremo come caricare queste regole in CodeSniffer di PHP e quindi valutare plugin, codice del tema e così via per avere un'idea di come usarlo nei nostri giorni- oggi lavoro nei nostri progetti WordPress.
Prima di andare avanti al prossimo articolo, rivedere il codice qui sopra e assicurarsi di avere PHP e PHP CodeSniffer installati e che tu abbia familiarità con il suo funzionamento, poiché legheremo tutto questo insieme.
Infine, puoi rivedere tutti i miei corsi ed esercitazioni sulla mia pagina del profilo, e puoi seguirmi sul mio blog e / o Twitter su @tommcfarlin dove parlo di varie pratiche di sviluppo del software specialmente nel contesto di WordPress.
Non esitare a lasciare qualsiasi domanda o commento nel feed qui sotto e cercherò di rispondere a ciascuno di essi.