Anche se indossi un S sul petto, quando si parla di programmazione, gli errori si inseriranno senza dubbio nella tua applicazione. Questi errori sono causati da noi programmatori a causa di errori di codice o da utenti che non sono disposti a conformarsi ai limiti dell'applicazione o del sito Web.
Gli errori causati dagli utenti finali sono di solito più sfavorevoli di quelli del motivo del programmatore perché i dati o le informazioni immessi dall'utente sono imprevedibili.
Ad esempio, in un campo modulo email, invece di inserire un indirizzo email valido, l'utente potrebbe inserire un testo non email. Se il sito web non dispone di un solido meccanismo di gestione degli errori, l'utente può ottenere l'accesso non autorizzato alle informazioni sensibili.
Poiché non è possibile prevedere il comportamento degli utenti, è possibile programmare un sito Web o un'applicazione per rifiutare giustamente eventuali dati non validi immessi dall'utente e informare l'utente che i dati non sono validi. Questo processo è ciò che viene definito gestione degli errori
WordPress viene fornito con una classe WP_Error che semplifica notevolmente la gestione degli errori nei plugin e nello stesso WordPress.
Il WP_Error
la classe consiste di due proprietà e otto metodi. Queste proprietà sono utilizzate internamente dalla classe e probabilmente non saranno necessarie queste proprietà poiché la maggior parte dell'attività che si desidera eseguire può essere eseguita utilizzando i metodi della classe.
Di seguito sono elencate le due proprietà di classe e ciò che fanno.
$ errori
èuna matrice contenente l'elenco degli errori.$ error_data
è una matrice contenente l'elenco di dati per i codici di errore. Prima di esaminare i metodi di classe, mi piacerebbe spiegare questi tre termini usati internamente dal WP_Error
classe - Codice, Messaggio, Dati.
Non preoccuparti se sono difficili da capire in questo momento - le cose diventeranno più chiare mentre esaminiamo i campioni di codice nella sezione successiva.
errori
proprietà di classe.codice
) ma salvato in error_data
proprietà.Ora ai metodi di classe e cosa fanno:
__costruire()
è un metodo magico PHP accetta tre argomenti: codice, messaggio e dati. Passando la discussione sull'istanziazione del WP_Error
class imposta il messaggio di errore.get_error_codes ()
restituisce un elenco di array di tutti i codici di errore, se disponibili.get_error_code ()
recupera il primo codice di errore e restituisce stringa, intero o vuoto se non ci sono codici di errore.get_error_messages ($ code)
recuperare tutti i messaggi di errore quando il codice
argomento è assente o messaggi di errore che corrispondono al codice
discussione. Restituisce un array di stringhe di errore in caso di successo, o array vuoto in caso di errore (se si utilizza il parametro code).get_error_message ($ code)
ottiene un singolo messaggio di errore. Questo otterrà il primo messaggio disponibile per il codice. Se non viene fornito alcun codice, verrà utilizzato il primo codice disponibile. Restituisce una stringa di errore. get_error_data ($ code)
recuperare i dati di errore per un determinato codice di errore. Restituisce i dati o null, se non ci sono errori. aggiungi ($ code, $ message, $ data)
aggiungere altri messaggi di errore all'elenco dei messaggi di errore.add_data ($ data, $ code)
aggiunge dati per il codice di errore. Il codice di errore può contenere solo un pezzo di dati di errore.Per usare il WP_Error
classe per la gestione degli errori, in primo luogo istanziare la classe seguire con l'uso del metodo di classe. È possibile aggiungere un messaggio di errore che passa il codice
, Messaggio
, e dati
su istanziazione.
$ my_error = new WP_Error ('toy', 'il mio giocattolo preferito è dolly');
Esaminando la struttura dell'oggetto $ my_error tramite print_r ()
rivela:
WP_Error Object ([errors] => Array ([toy] => Array ([0] => il mio giocattolo preferito è dolly)) [error_data] => Array ()
Si noti che il nostro errore definito è memorizzato in errori
proprietà di classe mentre il error_data
la proprietà non ha dati.
Passando un terzo argomento sull'istanza, creare un dato con il codice
(primo argomento) essendo la chiave dell'array e il terzo argomento (dati
), il valore dell'array.
WP_Error Object ([errors] => Array ([toy] => Array ([0] => il mio giocattolo preferito è dolly)) [error_data] => Array ([toy] => my best))Per aggiungere o aggiungere altri messaggi di errore all'elenco di errori, il
Inserisci
viene usato il metodo che accettacodice
,Messaggio
, edati
come argomento del metodo.aggiungi ('gioco', 'la mia console di gioco preferita è PS4');Passando un terzo argomento (mixed data-type) al
Inserisci()
metodo aggiunge un dato al codice di errore.aggiungi ('gioco', 'la mia console di gioco preferita è PS4', 'miglior gioco');utilizzando
print_r ()
di nuovo, vediamo la struttura e le informazioni del nostro$ my_error
WP_Error
oggetto.WP_Error Object ([errors] => Array ([toy] => Array ([0] => il mio giocattolo preferito è dolly) [game] => Array ([0] => la mia console di gioco preferita è PS4)) [error_data ] => Array ([toy] => miglior giocattolo [gioco] => miglior gioco))Il
add_data ()
metodo potrebbe anche essere utilizzato per aggiungere rigorosamente i dati per il codice di errore. Il codice di errore può contenere solo un dato di errore.$ my_error-> add_data ('il mio miglior insegnante è lo zio Sam', 'insegnante');Abbiamo imparato come creare un'istanza e aggiungere messaggi e dati di errore a
WP_Error
oggetto. Vediamo come recuperare il messaggio di errore, codice e dati.Usando il
get_error_codes ()
metodo restituisce un elenco di array di tutti i codici di errore.print_r ($ my_error-> get_error_codes ()); / * restituisce Array ([0] => toy [1] => game) * /Mentre
get_error_code ()
restituisce solo il primo codice di errore.print_r ($ my_error-> get_error_code ()); // giocattoloIl
get_error_messages ()
Recupera tutti i messaggi di errore quando ilcodice
argomento è assente o messaggi di errore che corrispondono alcodice
discussione.print_r ($ my_error-> get_error_messages ()); / * restituisce Array ([0] => il mio giocattolo preferito è dolly [1] => la mia console di gioco preferita è PS4) * /print_r ($ my_error-> get_error_messages ('game')); / * restituisce Array ([0] => la mia console di gioco preferita è PS4) * /Il
get_error_message ()
restituisce un singolo messaggio di errore che corrisponde al codice. se nessun codice, restituisce il primo messaggio di errore.print_r ($ my_error-> get_error_message ()); // il mio giocattolo preferito è dollyIl
get_error_data ()
restituisce i dati per il codice di errore.print_r ($ my_error-> get_error_data ()); // miglior giocattoloprint_r ($ my_error-> get_error_data ('teacher')); // il mio miglior insegnante è lo zio SamQuando crei un plugin, potresti voler controllare se una variabile è un
WP_Error
oggetto. Qui è doveis_wp_error ()
torna utile.Inoltre, potresti anche voler assicurarti che a
WP_Error
oggetto non contiene alcun messaggio di errore prima che un'azione venga elaborata. Ad esempio, lo snippet di codice sotto controlla se$ my_error
l'oggetto non contiene errori. Se è vero, "Nessun errore, siamo a posto"è echeggiato.if (1> count ($ my_error-> get_error_messages ())) echo "Nessun errore, siamo a posto";Sommario
In questa prima parte della serie sulla gestione degli errori in WordPress utilizzando
WP_Error
, abbiamo dato un'occhiata alla classe per noi, spiegando cosa fa ogni metodo di classe con gli esempi di codice.La seconda parte ci mostrerà un pratico caso d'uso nell'uso
WP_Error
per gestire gli errori durante lo sviluppo di plugin. mentre realizzeremo un plug-in per i moduli di contatto.
Restate sintonizzati - non mancate!