Depanarea codului PHP este parte a oricărui proiect, dar WordPress vine cu sisteme de depanare specifice menite să simplifice procesul, precum și cu standardizarea codului pentru nucleu, plugin-uri și teme.
NOTĂ: Deși nu este obligatoriu să se țină cont de WP_DEBUG în plugin-uri și teme, este foarte recomandat ca dezvoltatorii de plugin-uri și teme să folosească modul WP_DEBUG când lucrează la codul pe care intenționează să-l publice. Dacă pluginul sau tema nu sunt compatibile atunci erorile, notificările și avertismentele care vor apare vor face imposibil pentru alți dezvoltatori utilizarea pluginului/temei când au WP_DEBUG activat, și tema nu va fi eligibilă pentru promovarea prin intermediul instrumentelor oficiale WordPress.
WP_DEBUG
WP_DEBUG este o constantă PHP (o variabilă globală permanentă), care poate fi utilizată pentru a declanșa modul „debug” peste tot în WordPress. Se presupune a fi fals în mod implicit și este, de obicei, setat la true în fișierul wp-config.php pe copiile de dezvoltare ale WordPress.
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG’, false);
Notă: Valorile adevărat și fals din exemplu nu sunt între apostrof (‘), deoarece acestea sunt valori booleene (fals/adevărat). Dacă setați constantele la „false„, acestea vor fi interpretate ca fiind adevărate, deoarece ghilimelele fac din ele un șir mai degrabă decât o valoare booleană.
Nu este recomandat să folosiți WP_DEBUG sau alte instrumente de depanare pe site-urile în funcțiune; ele sunt destinate pentru instalări de testare locală și de etapizare.
Erori, avertismente, și notificări PHP
Activarea WP_DEBUG va face ca toate erorile, notificările și avertismente PHP să fie afișate. Acest lucru este de natură să modifice comportamentul implicit al PHP care afișează numai erorile fatale și/sau prezintă un ecran alb al morții atunci când sunt erori.
Afișarea tuturor notificărilor și avertismentelor PHP determină de multe ori mesaje de eroare pentru lucruri care nu par deteriorate, dar nu urmează în mod corect convențiile de validare a datelor în PHP. Aceste avertismente sunt ușor de fixat odată ce codul relevant a fost identificat, și codul rezultat este aproape întotdeauna mai rezistent la buguri și mai ușor de întreținut.
Funcții și argumente depreciate
Activarea WP_DEBUG va provoca, de asemenea, notificări cu privire la funcțiile și argumentele depreciate în WordPress care sunt utilizate pe site. Acestea sunt funcții sau argumente de funcții care nu au fost eliminate din codul de bază încă, dar sunt programate pentru ștergere în viitorul apropiat. Notificările de depreciere indică de multe ori noua funcție care ar trebui să fie folosit în loc.
WP_DEBUG_LOG
WP_DEBUG_LOG este un companion al WP_DEBUG care face ca toate erorile să fie, de asemenea, salvate într-un fișier jurnal debug.log în interiorul directorului /wp-content/. Acest lucru este util dacă doriți să revizuiți toate notificările mai târziu sau este nevoie să se vizualizeze notificările generate în afara ecranului (de exemplu, în timpul unei cereri AJAX sau a rulării wp-cron).
Rețineți că acest lucru vă permite să scriețe în /wp-content/debug.log folosind funcția PHP implicită error_log(), ceea ce poate fi util, de exemplu la depanarea evenimentelor AJAX.
define(‘WP_DEBUG_LOG’, true);
Notă: pentru ca WP_DEBUG_LOG să nu facă nimic, WP_DEBUG trebuie să fie activat (true). Amintiți-vă că puteți dezactiva WP_DEBUG_DISPLAY independent.
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY este un alt companion pentru WP_DEBUG care controlează daca mesajele de depanare sunt afișate sa nu în interiorul paginilor HTML. Valoarea implicită este „true„, care arată erori și avertismente întimp ce acestea sunt generate. Setarea acestei valor la ”false” va ascunde toate erorile. Acesta ar trebui să fie utilizat în conjuncție cu WP_DEBUG_LOG, astfel încât erorile să poată fi revizuite ulterior.
define(‘WP_DEBUG_DISPLAY’, false);
Notă: pentru ca WP_DEBUG_DISPLAY să facă ceva, WP_DEBUG trebuie să fie activat (true). Amintiți-vă că puteți controla WP_DEBUG_LOG independent.
SCRIPT_DEBUG
SCRIPT_DEBUG este o constantă asociată care va forța WordPress să folosească versiuni „dev” ale CSS de bază și fișiere JavaScript, mai degrabă decât versiunile care sunt în mod normal încărcate. Acest lucru este util atunci când se testează modificările la orice fișiere .js sau .css încorporate. Implicit este fals.
define(‘SCRIPT_DEBUG’, true);
SAVEQUERIES
Definirea SAVEQUERIES salvează interogările de baze de date în o matrice care poate fi afișată pentru a ajuta la analiza acestor interogări. Constanta definită ca true face ca fiecare interogare să fie salvată, cât timp îi ia acelei interogări să execute, și ce funcție a fost apelată.
define(‘SAVEQUERIES’, true);
Matricea este stocată în $wpdb->queries global.
NOTĂ: Aceasta va avea un impact de performanță aspra site-ului, astfel încât asigurați-vă că o dezactivați atunci când nu efectuați lucrări de depanare.
Exemplu de wp-config.php pentru depanare
Următorul cod, introdus în fișierul wp-config.php, va înregistra toate erorile, notificările și avertismentele într-un fișier numit debug.log în directorul wp-content. Acesta va ascunde în același timp erorile, astfel încât acestea să nu întrerupă generarea paginii.
//Activați modul WP_DEBUG
define(‘WP_DEBUG’, true);
// Activați înregistrarea problemelor în fișierul /wp-content/debug.log
define(‘WP_DEBUG_LOG’, true);
// Dezactivați afișarea erorilor și avertismentelor
define(‘WP_DEBUG_DISPLAY’, false);
@ini_set(‘display_errors’,0);
// Utilizați versiunile dev pentru fișierele de bază JS și CSS (necesare doar dacă se modifica aceste fișiere de bază)
define(‘SCRIPT_DEBUG’, true);
NOTĂ: Trebuie să introduceți aceasta ÎNAINTE /* Asta e tot, nu mai edita! Blogging fericit. */ în fișierul wp-config.php.
Depanarea modulelor
Există multe plugin-uri bine scrise, care se ocupă de depanare în WordPress și arată mai multe informații despre problemele interne, pentru o anumită componentă sau în general. Câteva exemple de astfel de plugin-uri sunt Debug Bar, Log Deprecated Notices și Total Security.
Istorie
Înainte de WordPress 3.1, constanta STYLE_DEBUG se comportata similar cu SCRIPT_DEBUG dar afecta fișierele CSS, mai degrabă decât JavaScript. În versiunea 3.1 cele două constante au fuzionat în SCRIPT_DEBUG, care afectează în prezent ambele tipuri de fișiere.
Traducere din wordpress.org
Lasă un răspuns