Chiar dacă purtați un S pe piept, când vine vorba de programare, erorile se vor strecura, fără îndoială, în aplicația dvs. Aceste erori sunt cauzate de noi de către programatori ca urmare a erorilor de cod sau de către utilizatorii care nu sunt dispuși să se conformeze aplicației sau constrângerilor site-ului web.
Erori cauzate de utilizatorii finali sunt, de obicei, mai adverse decât cea a motivului programatorului deoarece datele sau informațiile introduse de utilizator sunt imprevizibile.
De exemplu, într-un câmp de formular de e-mail, în loc să introduceți un e-mail valid, utilizatorul ar putea să intre un text fără text. Dacă site-ul nu are un mecanism solid de gestionare a erorilor, utilizatorul poate obține acces neautorizat la informații sensibile.
Din moment ce comportamentul utilizatorilor nu poate fi prezis, un site web sau o aplicație poate fi programat să respingă în mod corect orice date nevalide introduse de utilizator și să informeze utilizatorul că datele sunt nevalide. Acest proces este ceea ce se numește gestionarea erorilor
WordPress livrează cu o clasă WP_Error care face manipularea erorilor în plugin-uri și WordPress în sine mult mai ușor.
WP_Error
clasa constă din două proprietăți și opt metode. Aceste proprietăți sunt utilizate intern de clasă și probabil că nu veți avea nevoie de aceste proprietăți deoarece majoritatea sarcinilor pe care doriți să le realizați pot fi realizate folosind metodele de clasă.
Mai jos sunt cele două proprietăți de clasă și ceea ce fac.
erori de $
esteo matrice care conține lista erorilor.$ error_data
este o matrice care conține lista de date pentru codurile de eroare. Înainte de a examina metodele de clasă, îmi place să explic aceste trei termeni utilizați intern de către WP_Error
clasă - Cod, Mesaj, Date.
Nu vă faceți griji dacă sunt greu de înțeles chiar acum - lucrurile devin mai clare pe măsură ce examinăm mostrele de cod în secțiunea următoare.
erori
proprietate clasa.cod
), dar salvat la error_data
proprietate.Acum la metodele de clasă și la ceea ce fac:
__construi()
este o metodă de magie PHP accepta trei argumente - cod, mesaj și date. Transmiterea argumentului la instanțierea lui WP_Error
clasa configurează mesajul de eroare.get_error_codes ()
returnează o listă de matrice cu toate codurile de eroare, dacă este disponibilă.get_error_code ()
extrage primul cod de eroare și returnează șirul, întregul sau gol dacă nu există coduri de eroare.get_error_messages (codul $)
regăsiți toate mesajele de eroare atunci când cod
argumentul este absent sau mesajele de eroare care se potrivesc cod
argument. Returnează o serie de șiruri de erori privind succesul sau matrice goală la eșec (dacă utilizează parametrul de cod).get_error_message (codul $)
primește un singur mesaj de eroare. Acesta va primi primul mesaj disponibil pentru cod. Dacă nu se dă niciun cod, se va utiliza primul cod disponibil. Returnează un șir de erori. get_error_data (codul $)
prelua datele de eroare pentru un cod de eroare dat. Returnează datele sau nu, dacă nu există erori. adăugați ($ code, $ message, $ data)
adăugați mai multe mesaje de eroare la lista de mesaje de eroare.add_data ($ date, $ code)
adaugă date pentru codul de eroare. Codul de eroare poate conține doar o singură dată de eroare.Pentru a utiliza WP_Error
pentru tratarea erorilor, instanțiați în primul rând clasa urmată de utilizarea metodei de clasă. Puteți adăuga un mesaj de eroare care să treacă cod
, mesaj
, și date
pe instanțiere.
$ my_error = nou WP_Error ("jucărie", "jucăria mea preferată este dolly");
Examinează structura obiectului $ my_error prin print_r ()
relevă:
WP_Error Object ([eroare] => Array ([toy] => Array ([0] => jucarie mea preferata este dolly)) [error_data] => Array
Observați că eroarea definită este stocată în erori
clasa de proprietate în timp ce error_data
proprietatea nu are date.
Trecerea unui al treilea argument la instanțierea datelor creează date cu cod
(primul argument) fiind cheia matricei și al treilea argument (date
), valoarea matricei.
Obiectul WP_Error ([eroare] => Array ([toy] => Array ([0] => jucarie mea preferata este dolly)) [error_data] => Array ([toy] =>Pentru a adăuga sau a adăuga mai multe mesaje de eroare la lista erorilor,
adăuga
se utilizează metoda care acceptăcod
,mesaj
, șidate
ca argument de metodă.adăugați ("joc", "consola mea de jocuri preferată este PS4");Transmiterea unui al treilea argument (tip de date mixte) la
adăuga()
metoda adaugă date la codul de eroare.adăugați ("joc", "consola mea de jocuri preferată este PS4", "cel mai bun joc");Utilizarea
print_r ()
din nou, să vedem structura și informațiile noastre$ my_error
WP_Error
obiect.WP_Error Object ([eroare] => Array ([toy] => Array ([0] => jucarie mea preferata este dolly) [joc] => Array ([0] ] => Array ([toy] => cea mai bună jucărie [joc] => cel mai bun joc))
add_data ()
metoda ar putea fi de asemenea folosită pentru a adăuga date strict pentru codul de eroare. Codul de eroare poate conține numai un singur număr de eroare.$ my_error-> add_data ("cel mai bun profesor al meu este Unchiul Sam", "profesor");Am învățat cum să instanțiăm și să adăugăm mesaj de eroare și date către
WP_Error
obiect. Să vedem cum să preluăm mesajul de eroare, codul și datele.Utilizarea
get_error_codes ()
metoda returnează o listă de matrice a tuturor codurilor de eroare.print_r ($ my_error-> get_error_codes ()); / * returnează Array ([0] => jucărie [1] => joc) * /In timp ce
get_error_code ()
returnează numai primul cod de eroare.print_r ($ my_error-> get_error_code ()); // jucărie
get_error_messages ()
Preluați toate mesajele de eroare atunci cândcod
argumentul este absent sau mesajele de eroare care se potrivesccod
argument.print_r ($ my_error-> get_error_messages ()); / * returnează array ([0] => jucăria mea preferată este dolly [1] => consola mea de jocuri preferată este PS4) * /print_r ($ my_error-> get_error_messages ("joc")); / * returnează Array ([0] => consola mea de jocuri preferată este PS4) * /
get_error_message ()
returnează un singur mesaj de eroare care corespunde codului. dacă nu există niciun cod, returnează primul mesaj de eroare.print_r ($ my_error-> get_error_message ()); // jucaria mea preferata este dolly
get_error_data ()
returnează datele pentru codul de eroare.print_r ($ my_error-> get_error_data ()); // cea mai bună jucărieprint_r ($ my_error-> get_error_data ("profesor")); // cel mai bun profesor al meu este unchiul SamCând construiți un plugin, este posibil să doriți să verificați dacă o variabilă este a
WP_Error
obiect. Aici e loculis_wp_error ()
vine la îndemână.De asemenea, ați putea dori să vă asigurați că
WP_Error
obiectul nu conține niciun mesaj de eroare înainte de procesarea unei acțiuni. De exemplu, fragmentul de cod de mai jos verifică dacă$ my_error
obiect nu conține nici o eroare. Daca e adevarat, "Fără eroare, suntem bine să mergem"este echivalentă.dacă (1> numără ($ my_error-> get_error_messages ())) echo "Nici o eroare, suntem bine să mergem";rezumat
În această primă parte a seriei despre erorile de manipulare în WordPress folosind
WP_Error
, am aruncat o privire asupra clasei, ne-am explicat ce face fiecare clasă cu exemplele de cod.Partea a doua ne va arăta o utilizare practică în utilizarea
WP_Error
pentru a gestiona erorile la dezvoltarea pluginurilor. de fapt, vom construi un plugin de formular de contact pe măsură ce progresăm.
Rămâi acordat - nu ratați!