Debugging

postat acum 2 ani de Stefanescu Mihai in categorie PHP

Programatori scriu codul corect din prima incercare de putine ori pentru ca exista prea multe lucruri care pot merge prost in programul tau astfel incat interpretorul PHPsa genereze o eroare. Erorile pot ajunge in mai multe locuri, fie pe ecran fie in log-urile serverului web.

Pentru a afisa mesajele de eroare in browset setati diretciva display_errors pe On, iar pentru a le inregistra in log-uri setati directiva log_errors pe On. Puteti seta ambele directive pe On daca le doriti in ambele locuri.

PHP are o serie de constante deja definite pe care le poti folosi pentru a seta valoarea functiei error_reporting, de exemplu E_ALL (pentru toate erorile mai putin notices), E_PARSE (penturerorile de parse), E_ERROR (pentru erorile fatale), E_WARNING (pentru warning-uri), E_NOTICE (pentru notice-uri), si asa mai departe (Lectie erori)…

In timp ce scriem un program PHP putem folosi in IDE precum Emacs sau Netbeans(versiunea pentru PHP). Una dintre trasaturile speciale ale acestor programe este colorarea codului (syntax highlight) si nici nu mai vorbesc despre intellisense.

Alta trasatura speciala este afisarea intr-un mod diferit a parantezelor, acoladelor ce formeaza  o pereche.Iata cateva lucruri la care trebuie sa va ganditi in timpul debugging-ului.

  • Punct si virgula lipsa– Fiecare cod php se termina cu punct si virgula (;), iar PHP-ul va considera ca sfarsitul unui anumit cod este la punct si virgula.
  • Egal– Cand verificam daca 2 variabile sunt egale avem nevoie de 2 semne egal (==), iar folosirea unui singur egal (atribuire) este o gresela.
  • Variabile scrise gresit– Daca ai scris numele unei variabile greist PHP-ul o va considera o variabila noua.Tine minte, in PHP $test nu este acelasi lucru cu $Test
  • Semnul de dolar lipsa– Un dolar lipsa din numele unei variabile este greu de observat (mai ales cand cunosti si alte limbaje, precum java sau c++) .
  • Ghilimele– Poti avea fie prea multe fie prea putin ghilimele, sau poti deschide un tip de ghilimele si inchide alt tip.Atentie la ghilimele.
  • Paranteze si acolade– Parantezele si Acoladele sunt mereu in perechi de cate 2, nu putem avea una singura.
  • Array-uri– Indexurile array-urilor numerice incep de la 0 nu de la 1

Va recomand ca in stadiul de developement sa afisati erorile pe ecran, iar in productie le salvati in log-uri pentru a sti exact ce sa cautati cand apare o problema.

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group
Acest articol a fost mutat de pe vechea platforma.
Pentru orice eroare aparuta la mutare va rog sa ma contactati!