Eelmisel korral käisime läbi järgmise:
- silumiskonstantide seadistamine,
- vea logifaili leidmine,
- aru, kuidas logifaili lugeda,
- virna jälgede mõistmine
- aru, kuidas virna lugeda
Nii tore kui see ka pole, on siiski oluline mõista, kuidas programmilisest aspektist andmeid vealogi kirjutada. See tähendab; Üks asi on see, kui teie töö tekitab vigu, hoiatusi või märkusi.
Teine asi on see, kui soovite mõista, kuidas faili käsitsi teavet kirjutada ja siluda.
Selles postituses jätkame täpselt seda, et WordPressi vealogidest paremini aru saada.
WordPressi vealogide mõistmine, 2. osa
Mis mõte on ikkagi vealogi kirjutada? Kas see on isegi osa silumisprotsessist?
Eelmisest postitusest :
Aga kuidas on siis, kui tahame midagi välja jätta, et saada ülevaade sellest, mida WordPress või PHP näeb? See on ka kasulik.
Kui programmeerijad mõtlevad silumisele, mõtlevad paljud neist tegeliku siluri (st tarkvara osa) kasutamisele, katkestuspunktide seadmisele ja koodi läbimisele, et jälgida muutujate väärtust programmi käivitamisel.
Jõuame selleni, kuid enne seda vaatame, kuidas saame ise vealogi kirjutada, et anda meile ülevaade meie töö toimimisest.
Lõppude lõpuks on üks asi, kui meie töö on hoiatuste, vigade ja märkuste loopimine. Teine asi on see, kui on teavet, mida tahame näha. Ja seal tuleb mängu vealogi kirjutamine.
PHP funktsioonide mõistmine
Vealogi kirjutamiseks on oluline mõista kahte PHP funktsiooni:
Mis puutub funktsiooni error_log, siis pange tähele, et selle eesmärk on:
Saada tõrketeade määratletud veakäsitlusrutiinidele
Enamikul juhtudel on see seadistatud meie eest logifaili kirjutama WordPressi ja PHP vaikekonfiguratsiooni kaudu. Kuid siin on midagi enamat, sest me tahame sageli väljastada muutujate, massiivide, objektide jne väärtusi.
Selleks peab olema võimalik kasutada print_r koos faili error_log. print_r teeb järgmist:
Prindib muutuja kohta inimloetava teabe
Ja kui loete juhendit, märkate, et selleks on vaja kahte argumenti, millest teine tuleb määrata tõeseks, kui soovite funktsiooni tulemuse logifaili printida.
Täpsemalt, nagu juhendis on kirjas:
Kui soovite jäädvustada print_r() väljundi, kasutage
returnparameetrit. Kui selle parameetri väärtuseks on määratudTRUE, tagastab print_r() teabe, mitte ei prindi seda.
Nii et üldine idee kirjutada massiivi väärtus, näiteks $exampleArray, näeks välja umbes selline :
<?php
error_log(print_r($exampleArray, true));
Aga kuidas on lood WordPressi kontekstis?
Väärtuste kirjutamine WordPressi tõrketeate logisse
Nii et ülaltoodu kirjeldab meile vajalikke PHP-sse sisseehitatud funktsioone, kuid kuidas see WordPressi arendamise kontekstis välja näeb.
Selleks oletame, et oleme juurutanud registri mustri versiooni. Mustri rakendamisel on meil ka meetod nimega start, mida saame kutsuda, kui kõik meie objektid on registrisse lisatud.
See võib välja näha umbes selline:
<?php
/**
* Starts all of the objects stored is the registry by calling
* the `start` method that's available on each of the objects.
*/
public function start()
{
foreach ($this->storage as $obj) {
$obj->start();
}
}
Nüüd, mis puudutab rakendamist, on see lihtne. Aga mis siis, kui tahame näha, milliseid objekte tsükli iga iteratsiooni kaudu kutsutakse.
Selle idee seisneb selles, et suudame salvestatud objektide kaudu itereerida ja nimetada igaühe jaoks meetodi. See põhineb ideel, et igal objektil on igaühe jaoks saadaval meetod (mida saab jõustada liidesega ).
Esiteks tõstatab see küsimuse: miks me võime seda teha? WordPressi sündmustehaldussüsteemi olemuse tõttu tahame võib-olla tagada, et iga objekt, mille käivitamist ootame, käivituks.
Teiseks, kuidas saame näha, milliseid objekte kutsutakse? Siin tulebki mängu vealogi kirjutamine. Kasutades ülalkirjeldatud meetodeid, on üks viis seda teha järgmiselt.
<?php
/**
* Starts all of the objects stored is the registry by calling
* the `start` method that's available on each of the objects.
*/
public function start()
{
foreach ($this->storage as $obj) {
error_log(print_r($obj, true));
$obj->start();
}
}
Selle tulemuseks on järgmine väljund:
Siin näete objekti; see on nimeruum, see on atribuudi väärtused (sh kas atribuudid on privaatsed, kaitstud, avalikud jne).
Sealt saate seejärel natuke silumist teha, kui väljund on see, mida te ei oodanud, või võite selle abil kontrollida, kas teie kood teeb seda, mida ootate.
See on siiski vaid üks näide. Siiski võite muutuja $storage väärtused enne tsükli itereerimist välja jätta. See valik sõltub tõesti sinust ja sellest, mida soovid saavutada.
Installitud pistikprogrammide kasutamine
Siinkohal oleme käsitlenud koodi silumise põhiaspekte vealogide kasutamise kaudu.
Nüüd aga peame pöörama tähelepanu pistikprogrammidele, millest paar postitust tagasi räägiti. Pärast seda töötame lõpuks Xdebugi poole.
Järgmisena vaatame aga WordPressis endas meile saadaolevaid tööriistu.

