Selv om du har på deg en S På brystet, når det gjelder programmering, vil feil utvilsomt krype inn i søknaden din. Disse feilene er enten forårsaket av programmene våre som følge av kodefeil eller av brukerne som ikke er villige til å overholde programmets eller nettstedets begrensninger.
Feilene forårsaket av sluttbrukerne er vanligvis mer ugunstige enn programmeringsårsaken fordi dataene eller informasjonen som er oppgitt av brukeren, er uforutsigbar.
For eksempel, i et e-post skjemafelt, kan brukeren angi i stedet for å skrive inn en gyldig e-post en ikke-e-posttekst. Hvis nettsiden mangler en solid feilhåndteringsmekanisme, kan brukeren få uautorisert tilgang til sensitiv informasjon.
Siden brukerens atferd ikke kan forutses, kan en nettside eller et program programmeres til å utelukke rett og slett eventuelle ugyldige data som er oppgitt av brukeren, og informere brukeren om at dataene var ugyldige. Denne prosessen er det som kalles feilhåndtering
WordPress leveres med en WP_Error-klasse som gjør feilhåndtering i plugins og WordPress selv mye enklere.
De WP_Error
klassen består av to egenskaper og åtte metoder. Disse egenskapene brukes internt av klassen, og du vil sannsynligvis ikke trenge disse egenskapene da det meste av oppgaven du vil utføre, kan oppnås ved hjelp av klassemetoder.
Nedenfor er de to klassegenskapene og hva de gjør.
$ feil
eren matrise som inneholder listen over feil.$ error_data
er en matrise som inneholder listen over data for feilkoder. Før vi undersøker klassemetoder, vil jeg gjerne forklare disse tre begrepene bruk internt av WP_Error
klasse - Kode, Melding, Data.
Ikke bekymre deg hvis de er vanskelig å forstå akkurat nå - ting blir vi tydeligere når vi undersøker kodeprøver i den etterfølgende delen.
feil
klasse eiendom.kode
), men lagret til error_data
eiendom.Nå til klassemetoder og hva de gjør:
__construct ()
er en PHP magisk metode akseptere tre argumenter - kode, melding og data. Passerer argumentet om instantiering av WP_Error
klassen setter opp feilmeldingen.get_error_codes ()
returnerer en matriseliste over alle feilkoder hvis tilgjengelig.get_error_code ()
henter den første feilkoden og returnerer streng, heltall eller tom hvis det ikke er feilkoder.get_error_messages ($ code)
hente alle feilmeldinger når kode
argumentet er fraværende eller feilmeldinger som samsvarer med kode
argument. Returnerer en rekke feilstrenger på suksess, eller tom array på feil (hvis du bruker kodeparameter).get_error_message ($ code)
får en enkelt feilmelding. Dette vil få den første meldingen tilgjengelig for koden. Hvis ingen kode er gitt, vil den første koden som er tilgjengelig, bli brukt. Returnerer en feilstreng. get_error_data ($ code)
hente feildata for en gitt feilkode. Returnerer dataene eller null, hvis det ikke er feil. legg til ($ kode, $ melding, $ data)
Legg til flere feilmeldinger i listen over feilmeldinger.add_data ($ data, $ code)
legger til data for feilkode. Feilkoden kan bare inneholde ett stykke feildata.For å bruke WP_Error
klasse for feilhåndtering, først oppsøke klassen følge ved bruk av klassemetoden. Du kan legge til en feilmelding som passerer kode
, budskap
, og data
på instantiering.
$ my_error = ny WP_Error ('leketøy', 'min favoritt leke er dolly');
Undersøk strukturen til $ my_error-objektet via print_r ()
avslører:
WP_Error Object ([feil] => Array ([toy] => Array ([0] => Min favoritt leke er dolly)) [error_data] => Array ()
Legg merke til at vår definerte feil er lagret i feil
klasse eiendom mens error_data
Eiendommen har ingen data.
Ved å sende et tredje argument om instantiering, opprett en data med kode
(første argument) er array-nøkkelen og det tredje argumentet (data
), arrayverdien.
WP_Error Object ([feil] => Array ([toy] => Array ([0] => Min favoritt leke er dolly)) [error_data] => Array ([toy] => mitt beste))Hvis du vil legge til eller legge til flere feilmeldinger i listen over feil, vil
Legg til
Metoden brukes som akseptererkode
,budskap
, ogdata
som metode argument.legg til ('spill', 'min favoritt spillkonsoll er PS4');Passerer et tredje argument (blandet datatype) til
Legg til()
Metoden legger til en data i feilkoden.legg til ('spill', 'min favoritt spillkonsoll er PS4', 'beste spill');Ved hjelp av
print_r ()
igjen, la oss se strukturen og informasjonen til vår$ my_error
WP_Error
gjenstand.WP_Error Object ([feil] => Array ([toy] => Array ([0] => Min favoritt leke er dolly) [game] => Array ([0] => Min favoritt spillkonsoll er PS4)) [error_data ] => Array ([toy] => beste leketøy [spill] => beste spill))De
add_data ()
Metoden kan også brukes til å legge til strengt data for feilkode. Feilkoden kan bare inneholde en feilinformasjon.$ my_error-> add_data ('min beste lærer er Uncle Sam', 'teacher');Vi har lært å instantiere og legge til feilmelding og data til
WP_Error
gjenstand. La oss se hvordan du henter feilmeldingen, koden og dataene.Bruker
get_error_codes ()
Metoden returnerer en matriseliste over alle feilkoder.print_r ($ my_error-> get_error_codes ()); / * returnerer Array ([0] => leketøy [1] => spill) * /Samtidig som
get_error_code ()
returnerer bare den første feilkoden.print_r ($ my_error-> get_error_code ()); // leketøyDe
get_error_messages ()
Hent alle feilmeldinger nårkode
argumentet er fraværende eller feilmeldinger som samsvarer medkode
argument.print_r ($ my_error-> get_error_messages ()); / * returnerer Array ([0] => Min favoritt leke er Dolly [1] => Min favoritt spillkonsoll er PS4) * /print_r ($ my_error-> get_error_messages ('spill')); / * returnerer Array ([0] => min favoritt spillkonsoll er PS4) * /De
get_error_message ()
returnerer en enkelt feilmelding som samsvarer med koden. Hvis ingen kode returnerer den første feilmeldingen.print_r ($ my_error-> get_error_message ()); // min favoritt leke er dollyDe
get_error_data ()
returnerer dataene for feilkode.print_r ($ my_error-> get_error_data ()); // beste leketøyprint_r ($ my_error-> get_error_data ('lærer')); // min beste lærer er onkel SamNår du bygger et plugin, vil du kanskje sjekke om en variabel er en
WP_Error
gjenstand. Dette er hvoris_wp_error ()
kommer til nytte.Også, kanskje du også vil forsikre deg om a
WP_Error
objekt inneholder ikke noen feilmelding før en handling behandles. For eksempel, sjekke kodestykket nedenfor om$ my_error
objektet inneholder ingen feil. Hvis sant, "Ingen feil, det er bra å gå"ekko.hvis (1> count ($ my_error-> get_error_messages ())) echo "Ingen feil, vi er gode å gå";Sammendrag
I denne første delen av serien om håndtering av feil i WordPress bruker
WP_Error
, vi tok en titt på klassen til oss, forklart hva hver klassemetode gjør med kodeeksempler.Del to vil vise oss en praktisk brukssak ved bruk
WP_Error
å håndtere feil når du utvikler plugins. vi skal faktisk bygge et kontaktskjema-plugin når vi utvikler seg.
Hold deg oppdatert - ikke gå glipp av det!