Standard di codifica: qualcosa da annusare

Pubblicato: 2021-07-19

Alcune domande esistono fin dallo sviluppo del software. Devo rientrare con tabulazioni o spazi? Gli standard di codifica sono davvero così importanti? Devo davvero perdere tempo seguendo alcune regole arbitrarie?

Rispettivamente, le risposte a queste domande sono: tabs (ovviamente), (meno ovviamente) e no ( più o meno ).

Sniffing del codice PHP

L'importanza degli standard è stata ampiamente trattata da altri, quindi non entrerò nei dettagli qui, ma il punto cruciale è questo: la coerenza interna è desiderabile all'interno di un dato progetto perché migliora la leggibilità, limita le sorprese e può contribuire al robustezza del codice

Non è necessario "perdere tempo" attenendosi agli standard perché ci sono modi per applicare tali standard automaticamente!

Quello che tratterò qui è un mezzo per configurare rapidamente e facilmente lo strumento autonomo PHP Codesniffer (PHPCS) per i progetti WordPress. Questo ti consentirà di:

  • Produci un rapporto sulla conformità agli standard nel tuo codice
  • Risolvi automaticamente un'ampia varietà di problemi di conformità

Implementeremo gli standard di WordPress negli esempi che seguono.

Installazione

Prerequisiti:

  • Accesso al terminale (gli utenti di Windows potrebbero avere successo con Bash per Windows ma questo non è stato testato)
  • Gestore pacchetti compositore

Sebbene sia possibile installare PHPCS da solo, non supporta WordPress per impostazione predefinita. Per questo, installeremo gli standard di codifica WordPress (WPCS) dal nome vivace.

Innanzitutto, vai alla posizione in cui desideri installare WPCS per l'uso globale.

 $ > cd /percorso/verso/ovunque

Installa il pacchetto con il compositore.

 $ > compositore crea-progetto wp-coding-standards/wpcs --no-dev

A questo punto, potremmo tuffarci e iniziare a utilizzare WPCS, ma ci sono alcuni flag da impostare ogni volta che eseguiamo il comando. Impostiamo un paio di alias per comodità.

Apri .profile dalla tua home directory nel tuo editor preferito (o crealo se non esiste) e aggiungi quanto segue:

 # Standard di codifica WP
export PATH=$PATH:"/path/to/where/wpcs/vendor/bin"
alias wpcs='phpcs --standard=WordPress --extensions=php
alias wpcbf='phpcbf --standard=WordPress --extensions=php

Abbiamo aggiunto due alias qui: uno per phpcs (che trova e visualizza gli errori di conformità) e uno per phpcbf (che risolve automaticamente vari problemi rilevati da phpcs). Le opzioni aggiuntive fanno quanto segue:

–standard=WordPress – applica gli standard WordPress (impostati in WPCS)

–extensions=php – target solo file PHP (PHPCS target PHP, CSS e JS per impostazione predefinita)

Riavvia il Terminale (o sorgente .profile ) e WPCS è pronto per annusare il tuo codice!

annusando

Per produrre un rapporto sniff su un file, eseguire quanto segue:

 $ > wpcs /percorso/del/tuo/php/progetto/file.php

Questo produrrà il rapporto nel terminale. In alternativa, puoi esportare questo in un file:

 $ > wpcs /percorso/del/tuo/php/progetto/file.php > output.txt

Il Rapporto Sniff

Il tuo output sniff WPCS sarà qualcosa del genere:

Rapporto Codesniffer PHP

C'è una discreta quantità di informazioni racchiuse qui, ma è abbastanza chiara. Rivediamo cosa abbiamo:

  • Il file mirato
  • Un riepilogo del numero di errori/avvisi rilevati e del numero di righe interessate
  • Un elenco di problemi rilevati, con livelli di gravità e descrizioni
  • Un'indicazione di quanti problemi phpcbf può risolvere automaticamente (in pratica tutti i problemi con una [x])

Come ci si potrebbe aspettare, PHPCS non può tenere conto di tutto. Non farà supposizioni sulla scelta della punteggiatura nei commenti e su alcuni tipi di formattazione del codice, ma può gestire un'ampia varietà di problemi per te.

Un bel vantaggio è che le regole di WordPress consentono a PHPCS di rilevare problemi specifici di WordPress, incluso il potenziale uso improprio delle funzioni.

Fissaggio

La risoluzione automatica dei problemi non potrebbe essere più semplice:

 $ > wpcbf /percorso/del/tuo/php/progetto/file.php

Viene prodotto un breve riepilogo:

Output del correttore di codice PHP

Eventuali errori rimanenti dovrebbero essere corretti manualmente, ma di solito troverai che una buona parte dei problemi è stata risolta.

Regole personalizzate

Potresti anche voler personalizzare il set di regole, escludere alcune directory nel tuo progetto e così via. I documenti del set di regole annotate PHPCS forniscono esempi di tutte le modifiche che puoi apportare, ma in generale devi solo:

  1. Crea un file di regole
  2. Fai riferimento ad esso nel comando PHPCS

Ecco un esempio di un file di regole:

 <?xml version="1.0"?>
<ruleset name="Standard di codifica WordPress">
    <description>Standard WordPress personalizzati.</description>
    <regola ref="WordPress">
        <exclude name="Generic.Formatting.MultipleStatementAlignment.NotSameWarning"/>
    </regola>
    <exclude-pattern>*/bin/*</exclude-pattern>
    <exclude-pattern>*/node_modules/*</exclude-pattern>
    <exclude-pattern>*/tests/*</exclude-pattern>
</ruleset>

Nell'esempio abbiamo fatto quanto segue:

  • Riferimento al set di regole di WordPress (da WPCS)
  • Esclusa una regola
  • Escluse alcune directory

Il file del set di regole può essere posizionato in qualsiasi directory da cui stai chiamando WPCS (il progetto, il tema o la radice del plugin è solitamente sensato) e referenziato tramite un flag. Aggiorna il flag –standard nel tuo .profile, in questo modo:

 # Standard di codifica WP
export PATH=$PATH:"/path/to/where/wpcs/vendor/bin"
alias wpcs='phpcs --standard=codesniffer.ruleset.xml --extensions=php
alias wpcbf='phpcbf --standard=codesniffer.ruleset.xml --extensions=php

Per verificare quali regole vengono contrassegnate quando si esegue WPCS, è sufficiente eseguirlo con il flag -s in questo modo:

 $ > wpcs -s /percorso/del/tuo/php/progetto/file.php

Che cosa dopo?

La guida di cui sopra ti consentirà di eseguire controlli di conformità agli standard ad hoc nel tuo progetto WordPress, ma se desideri integrarlo nel tuo ciclo di sviluppo standard, il passaggio logico successivo è l'automazione.

Prendi in considerazione l'integrazione di PHPCS in un task runner come gulp o grunt (i moduli PHPCS sono disponibili per entrambi) o altrimenti integralo nella tua pipeline di build CI/CD.

Per assistenza con lo sviluppo e il design web, mettiti in contatto con noi oggi.


Se hai bisogno di aiuto non esitare a contattarci.