✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Scrivere un codice WordPress migliore: PHPStan

15

Nel post più recente di questa serie (che è certamente tempo fa), ho parlato a lungo di Composer e del suo file di blocco.

Raccomando di leggere i due articoli precedenti perché Composer alla fine giocherà un ruolo in questo materiale che questo e i futuri post condivideranno. Ma se scegli di non raggiungerli (o hai già familiarità con Composer), il succo dei post precedenti è, rispettivamente, il seguente:

Non consiglio di controllare la directory del fornitore nel tuo repository. Questo può diventare un’enorme directory in seguito e può minare l’intero scopo di Composer.

Compositore

L’obiettivo è assicurarsi che tutti eseguano la stessa versione delle dipendenze del progetto, non versioni precedenti, né versioni più recenti, ma la stessa versione.

Il file di blocco del compositore

Detto questo, ci sono numerose dipendenze o pacchetti che possiamo installare che ci aiutano a assicurarci di scrivere codice della massima qualità possibile.

Certo, alcuni di questi possono avere la forma di qualcosa come gli standard di codifica, ma in realtà sono più regole che elementi per scrivere codice di alta qualità (anche se non penso che dovrebbero essere escluse dalla discussione, semplicemente tralasciate in questo momento 🙃).

Tornando agli strumenti in questione: quali sono alcuni strumenti che aiutano a scrivere codice WordPress di alta qualità? Condividerò alcuni dei miei preferiti e parlerò di come eseguirli tutti su una base di codice.

Per prima cosa, diamo un’occhiata all’analisi statica con PHPStan.

Codice WordPress migliore con PHPStan

Che cos’è l’analisi statica, comunque?

Innanzitutto, qualche parola sull’analisi statica. Vale a dire, che cos’è? È un boccone, tanto per cominciare:

L’analisi statica del codice (nota anche come analisi del codice sorgente) viene solitamente eseguita come parte di una revisione del codice (nota anche come test white-box) e viene eseguita nella fase di implementazione di un ciclo di vita dello sviluppo della sicurezza (SDL).

L’analisi del codice statico si riferisce comunemente all’esecuzione di strumenti di analisi del codice statico che tentano di evidenziare le possibili vulnerabilità all’interno del codice sorgente "statico" (non in esecuzione) utilizzando tecniche come l’analisi della contaminazione e l’analisi del flusso di dati.

Analisi del codice statico tramite OWASP

Pensala in questo modo: è un modo per analizzare un programma per potenziali errori che potresti non vedere quando lavori sulla base di codice.

Cioè, ci sono problemi, bug, problemi di sicurezza, che possono essere presenti ma non puoi rilevare per una serie di motivi (l’ultimo dei quali è che sei troppo vicino al codice).

Nel corso del tempo, tuttavia, la comunità di sviluppo ha imparato i modi per analizzare il codice, generare insiemi di regole e creare strumenti per trovare esattamente tutto quanto sopra.

Analisi statica del codice incentrato su WordPress

Ed è qui che entra in gioco PHPStan.

Scrivere un codice WordPress migliore: PHPStan

Come accennato, l’obiettivo del pacchetto è identificare errori o bug che esistono nel codice prima che il codice venga utilizzato da qualcuno diverso dagli sviluppatori, evidenziarli e darti l’opportunità di risolverli.

Poiché strumenti come questo esaminano una base di codice (anziché eseguire il codice), non è sempre possibile ottenere un quadro chiaro. Ciò significa che possiamo ottenere falsi positivi.

Maggiori informazioni su questo in un momento però.

Se sei interessato a iniziare con l’esecuzione di PHPStan sulla tua base di codice, è facile. Dopo averlo installato, ricordati di configurarlo in modo che non appaia nella vendordirectory o, ad esempio, nel core di WordPress.

Invece, fallo esaminare il tuo codice.

Installazione di PHPStan

Innanzitutto, nel tuo composer.jsonfile, aggiungi la seguente riga nella require-devsezione:

"phpstan/phpstan": "^0.11.12"

Quindi esegui composer updatenel tuo terminale.

Una volta installato, puoi eseguirlo su un singolo file, una directory o un insieme di directory. Se hai letto i miei post precedenti sull’organizzazione del codice, allora sai che sono un fan di mantenere la maggior parte del codice sorgente del progetto dentro srcdi te, potresti eseguire qualcosa del genere:

$ vendor/bin/phpstan analyse src

Questo genererà un output in base a ciò che trova l’utilità.

Ricordi prima quando ho detto che potrebbe trovare cose come falsi positivi? Ecco un riassunto più dettagliato di ciò che potresti vedere:

  • Argomenti extra passati alle funzioni (ad es. la funzione richiede due argomenti, il codice ne passa tre)
  • Argomenti extra passati alle funzioni print/sprintf (ad es. la stringa di formato contiene un segnaposto, il codice passa due valori da sostituire)
  • Errori evidenti nel codice morto
  • Comportamento magico che deve essere definito.

Tutto quanto sopra direttamente dal repository.

È qui che i livelli delle regole possono fare la differenza, anche se potrebbe essere necessario un po’ di ritocco per portarlo a un livello adatto alla tua squadra o al tuo progetto.

Che dire dell’analisi per WordPress?

Viktor Szépe ha condiviso questa risorsa con me (qualcosa di cui è l’autore, in realtà) e penso che sia qualcosa di rilevante e utile. L’idea del pacchetto è semplice:

Risolve tutti i problemi che ho avuto durante l’analisi del codice per WordPress.

Non male, vero?

Analizza il tuo codice

Indipendentemente dal tuo progetto, dalla tua organizzazione del codice o dal livello a cui esegui questa particolare utility, il punto è sempre migliorare il livello di qualità del codice di WordPress che stiamo scrivendo.

Installarlo come pacchetto Composer e quindi eseguirlo sulla tua srcdirectory è un passo nella giusta direzione.

Come affermato in precedenza, condividerò alcuni altri strumenti e condividerò quindi come eseguirli tutti su una base di codice prima di eseguire il commit del codice in un repository.

Nota

Se hai un problema nel tentativo di configurare il pacchetto, Dave Mackey mi ha contattato con un problema simile e la sua soluzione.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More