Menu

Debugging Incepator

In caz ca ai exersat dupa ce ai citit lectiile mele precedente, in caz ca ai avut bunavointa sa intri pe php.net sa citesti suplimentar fata de lectiile mele sunt sigur ca te-ai lovit de asa numitele bug-uri, erori ale aplicatiei. Azi vei invata cum sa ajungi le rezolvi, sa-ti dezvolti o abilitate mai rar intalnita in randul programatorilor incepatori.

Consider ca deja ai invatat din sintaxa php-ului. Deja ti-ai dezvoltat un stil de a programa, asa ca aceasta lectie va fi putin mai avansata decat restul lectiilor in care am incercat sa explic cat mai pe intelesul tuturor notiunile din programarea in php.
Aceasta lectie va fi una scurta , nu uitati sa cititi tutorialul despre divide et impera aplicat in programare.

Pentru a incepe, avem nevoie sa ne asiguram ca toate erorile ne vor fi afisate. Pentru asta folosim functiia urmatoare:

error_reporting(E_ALL);
Unii progamatori insa prefera sa nu arate erorile de tip anunt(E_NOTICE) , in caz ca considerati erorile de acest tip inutile puteti folosii:
error_reporting(E_ALL ^ E_NOTICE);
Pentru a seta sa raporteze toate erorile se mai foloseste si:
error_reporting(-1); // setam sa arate toate erorile
Dar cand site-ul este online, si deja avem vizitatori este obligatoriu din punct de vedere al securitatii sa oprim complet erorile:
error_reporting(0); // oprim afisarea erorilor
Mai putem seta afisarea tuturor erorilor si cu ini_set, deoarece cu ea setam temporar in php.ini :
ini_set('error_reporting', E_ALL);

Trebuie sa precizez ca sunt unele hosturi, gen despregazduire unde oricat am incerca sa setam din php afisarea erorilor pe On nu vom reusii.
Pentru asta este necesar sa creati un fisier .htaccess in caz ca nu aveti si sa adaugati in el:

php_value display_errors on
php_value error_reporting 8191

Acum se testam o mica eroare intentionata, scrieti intr-un fisier php urmatorul cod:

<?php 
error_reporting(E_ALL); // setam afisarea tutoror notitelor
echo 'Erorile sunt enervante.;
?>
Si accesati pagina. Vei vedea ceva asemanator cu:

Aceasta eroare ne spune, de cele mai multe ori, ca avem o problema la linia numarul 3 cu apostrofurile. Observati va rog si urmatorul exemplu in care doar vom schimba din ghilimele simple in ghilimele duble:
<?php 
error_reporting(E_ALL); // setam afisarea tutoror notitelor
echo "Erorile sunt enervante.;
?>
Accesati pagina, si veti vedea ceva asemanator cu:

Eroarea s-a schimbat dupa cum vedeti.

Ca programatori, cand observati o eroare trebuie sa va uitati prima data pe liniile unde PHP ne spune ca este eroare, iar dupa pe liniile apropiate, foarte frecvent se intampla sa fie cu o linie mai sus.
Daca nici asta nu functioneaza trebuie sa aplicati tehnica Divide et Impera din tutorialul de la noi de pe site.

Acum la sfarsit doresc sa va spun ca debuggingul nu se invata. El se deprinde in timp, cu cat practicati mai mult, cu cat creati mai multe scripturi si siteuri web cu atat va veti dezvolta un stil propriu de debugging, un stil al vostru usor de aplicat, un stil care va va ajuta sa treceti peste teama oricarui programator, si anume teama de buguri. Multi spun ca debuggul este cel mai urat lucru din programare, parerea mea este ca nu este asa, daca tu nu ai stat degeaba si ai muncit, ti-ai dezvoltat un stil propriu de debugg, stii ce este tehnica Divide et Impera aplicata in progranare, ai scris codul cat mai lizibil cu putinta, l-ai indentat frumos atunci si debuggul o sa-ti para o joaca de copii, o joaca de 5 minute peste care vei trece foarte usor si fara sa te dai cu capul de pereti.



Ti-a placut articolul? Asigura-te ca-ti dam de veste cand publicam altele noi.


Tags: Curs Php

Comments Nota 5 din 1