Zelfs als je een draagt S op je borst, als het gaat om programmeren, zullen er ongetwijfeld fouten in je applicatie kruipen. Deze fouten worden ofwel veroorzaakt door de programmeurs als gevolg van een codefout of door de gebruikers die niet willen voldoen aan de beperkingen van de toepassing of de website..
De fouten veroorzaakt door de eindgebruikers zijn meestal nadeliger dan die van de programmeur reden, omdat de gegevens of informatie ingevoerd door de gebruiker onvoorspelbaar is.
In een e-mailformulierveld kan de gebruiker bijvoorbeeld invoeren in plaats van een geldig e-mailadres in te voeren een niet-e-mailtekst. Als de website geen solide mechanisme voor foutafhandeling kent, kan de gebruiker ongeautoriseerde toegang tot gevoelige informatie verkrijgen.
Aangezien het gedrag van gebruikers niet kan worden voorspeld, kan een website of toepassing worden geprogrammeerd om ongeldige gegevens die door de gebruiker zijn ingevoerd, op af te wijzen en de gebruiker ervan op de hoogte te stellen dat de gegevens ongeldig waren. Dit proces is wat foutafhandeling wordt genoemd
WordPress wordt geleverd met een WP_Error-klasse die foutafhandeling binnen plug-ins en WordPress zelf veel eenvoudiger maakt.
De WP_Error
klasse bestaat uit twee eigenschappen en acht methoden. Deze eigenschappen worden door de klas intern gebruikt en u zult deze eigenschappen waarschijnlijk niet nodig hebben, omdat de meeste taken die u wilt uitvoeren, kunnen worden uitgevoerd met behulp van de klassemethoden.
Hieronder staan de twee klasse-eigenschappen en wat ze doen.
$ fouten
iseen array met de lijst met fouten.$ error_data
is een array met de lijst met gegevens voor foutcodes. Voordat we de klassemethoden onderzoeken, zal ik deze drie termen, intern gebruik door de WP_Error
klasse - Code, bericht, gegevens.
Maak je geen zorgen als ze nu moeilijk te begrijpen zijn - dingen die we duidelijker worden als we codevoorbeelden onderzoeken in het volgende hoofdstuk.
fouten
eigendom van de klas.code
) maar opgeslagen in de error_data
eigendom.Nu naar de klassemethoden en wat ze doen:
__construct ()
is een PHP magische methode accepteert drie argumenten - code, bericht en gegevens. Doorgeven van het argument over de instantiatie van de WP_Error
class stelt het foutbericht in.get_error_codes ()
geeft een arraylijst met alle foutcodes terug, indien beschikbaar.get_error_code ()
haalt de eerste foutcode op en geeft tekenreeks, integer of leeg als er geen foutcodes zijn.get_error_messages ($ code)
haal alle foutmeldingen op wanneer het code
argument is afwezig of foutmeldingen die overeenkomen met de code
argument. Retourneert een reeks foutreeksen bij succes of lege array bij fout (bij gebruik van de codeparameter).get_error_message ($ code)
krijgt een enkele foutmelding. Hiermee wordt het eerste bericht voor de code beschikbaar. Als er geen code wordt gegeven, wordt de eerste beschikbare code gebruikt. Retourneert een foutstring. get_error_data ($ code)
ophalen van foutgegevens voor een gegeven foutcode. Retourneert de gegevens of null, als er geen fouten zijn. toevoegen ($ code, $ bericht, $ gegevens)
voeg meer foutmeldingen toe aan de lijst met foutmeldingen.add_data ($ data, $ code)
voegt gegevens voor foutcode toe. De foutcode kan slechts één stuk foutgegevens bevatten.Om de te gebruiken WP_Error
klasse voor foutafhandeling, eerst een instantie van de klas volgen door het gebruik van de klassemethode. U kunt een foutmelding toevoegen die de code
, bericht
, en gegevens
op instantiatie.
$ my_error = nieuwe WP_Error ('speelgoed', 'mijn favoriete speeltje is dolly');
De structuur van het object $ my_error via bekijken print_r ()
onthult:
WP_Error Object ([errors] => Array ([toy] => Array ([0] => mijn favoriete speelgoed is dolly)) [error_data] => Array ()
Merk op dat onze gedefinieerde fout is opgeslagen in fouten
class property terwijl de error_data
property heeft geen gegevens.
Als u een derde argument over instantiatie doorgeeft, maakt u een data met de code
(eerste argument) zijnde de array-sleutel en het derde argument (gegevens
), de arraywaarde.
WP_Error Object ([errors] => Array ([toy] => Array ([0] => mijn favoriete speelgoed is dolly)) [error_data] => Array ([toy] => mijn best))Om meer foutmeldingen toe te voegen of toe te voegen aan de foutenlijst, de
toevoegen
methode gebruikt die accepteertcode
,bericht
, engegevens
als methodeargument.toevoegen ('game', 'mijn favoriete spelconsole is PS4');Een derde argument (gemengd gegevenstype) doorgeven aan de
toevoegen()
methode voegt een gegeven toe aan de foutcode.toevoegen ('game', 'mijn favoriete gameconsole is PS4', 'beste game');Gebruik makend van
print_r ()
nogmaals, laten we de structuur en informatie van ons bekijken$ my_error
WP_Error
voorwerp.WP_Error Object ([errors] => Array ([toy] => Array ([0] => mijn favoriete speeltje is dolly) [game] => Array ([0] => mijn favoriete gameconsole is PS4)) [error_data ] => Array ([speelbal] => beste speeltje [spel] => beste spel))De
add_data ()
methode kan ook worden gebruikt om strikt gegevens voor foutcode toe te voegen. De foutcode kan slechts één foutgegevens bevatten.$ my_error-> add_data ('mijn beste leraar is Uncle Sam', 'leraar');We hebben geleerd hoe te instantiëren en foutmeldingen en gegevens toe te voegen aan de
WP_Error
voorwerp. Laten we kijken hoe het foutbericht, de code en de gegevens kunnen worden opgehaald.De ... gebruiken
get_error_codes ()
methode retourneert een arraylijst met alle foutcodes.print_r ($ my_error-> get_error_codes ()); / * geeft als resultaat Array ([0] => speelgoed [1] => spel) * /Terwijl
get_error_code ()
geeft alleen de eerste foutcode terug.print_r ($ my_error-> get_error_code ()); // speelgoedDe
get_error_messages ()
Haal alle foutmeldingen op wanneer hetcode
argument is afwezig of foutmeldingen die overeenkomen met decode
argument.print_r ($ my_error-> get_error_messages ()); / * geeft als resultaat Array ([0] => mijn favoriete speelgoed is dolly [1] => mijn favoriete spelconsole is PS4) * /print_r ($ my_error-> get_error_messages ('game')); / * geeft als resultaat Array ([0] => mijn favoriete spelconsole is PS4) * /De
get_error_message ()
retourneert een enkel foutbericht dat overeenkomt met de code. als er geen code is, wordt het eerste foutbericht geretourneerd.print_r ($ my_error-> get_error_message ()); // mijn favoriete speeltje is dollyDe
get_error_data ()
retourneert de gegevens voor foutcode.print_r ($ my_error-> get_error_data ()); // beste speelgoedprint_r ($ my_error-> get_error_data ('leraar')); // mijn beste leraar is Uncle SamBij het bouwen van een plug-in wil je misschien controleren of een variabele een is
WP_Error
voorwerp. Dit is waaris_wp_error ()
komt van pas.Misschien wilt u er ook zeker van zijn dat u een
WP_Error
object bevat geen foutbericht voordat een actie wordt verwerkt. Het onderstaande codefragment controleert bijvoorbeeld of$ my_error
object bevat geen enkele fout. Als het waar is, "Geen fout, we zijn goed om te gaan"wordt herhaald.if (1> count ($ my_error-> get_error_messages ())) echo "Geen fout, we zijn goed om te gaan";Samenvatting
In dit eerste deel van de serie over verwerkingsfouten in WordPress met
WP_Error
, we hebben de klas voor ons bekeken, uitgelegd wat elke klassenmethode doet met codevoorbeelden.Deel twee zal ons een praktische use-case laten zien bij het gebruik
WP_Error
om fouten te behandelen bij het ontwikkelen van plug-ins. we zullen eigenlijk een plug-in voor contactformulieren bouwen naarmate we vorderen.
Blijf op de hoogte - mis het niet!