PHP - Gestionarea erorilor in functie de mediul in care aplicatia ruleaza

Post Title

In acest tutorial vom discuta despre cum putem gestiona erorile emise de PHP, in functie de mediul in care aplicatia ruleaza.Putem spune ca aplicatia noastra se poate afla in unul dintre mediile:

1.Development ( in curs de dezvoltare )

 Daca aplicatia se afla in acest mediu, dorim ca erorile sa fie afisate astfel incat sa le putem rezolva.

2.Production ( aplicatia se afla pe server live )

Daca aplicatia se afla in acest mediu, dorim ca erorile sa nu fie afisate, din motive evidente de securitate, acestea fiind scrise intr-un fisier, astfel incat doar noi, programatorii, sa stim despre ce este vorba.

Pentru a controla modul in care PHP functioneaza, avem la dispozitie fisierul php.ini.Acest fisier contine setari de configurare ale PHP-ului.In cazul in care nu stiti unde este localizat acest fisier, vom proceda in urmatorul mod: vom crea folderul env, iar in interiorul acestui folder, vom crea fisierul index.php, apoi vom adauga instructiunea phpinfo(); Accesam in navigatorul favorit adresa http://localhost/env/index.php.Dupa cum puteti observa, acesta instructiune ne ofera foarte multe informatii, momentan avem nevoie doar de locatia fisierul php.ini.

PHP - phpinfo();

 

PHP - configuration file

 

Dupa cum putem observa, am gasit locatia acestui fisier, insa daca folositi un alt sistem de operare ( eu folosesc linux -  Ubuntu ) aceasta locatie poate fi diferita, insa fisierul php.ini este acelasi.Navigam catre aceasta locatie si deschidem fisierul php.ini.
Desi pare foarte coplestior in ceea ce priveste cantitatea de informatii, pe noi ne intereseaza doar anumite setari din acest fisier.Aceste setari sunt de forma: nume: valoare; si sunt folosite pentru a schimba modul in care PHP functioneaza.

 

PHP - php.ini

 

Noi suntem interesati de urmatoarele setari de configurare:

"display_errors" - Aceasta setare modifica afisarea erorilor in navitatorul web.
Poate avea valori precum:
1 - erorile sunt afisate in navigatorul web.
0 - erorile nu sunt afisate in navigatorul web.

"log_errors" -  Aceasta setare activeaza/dezactiveaza scrierea erorilor intr-un fisier.
Poate avea valori precum:
1 - Activare
0 - Dezactivare

"error_log" -  Aceasta setare este folosita pentru a seta locatia fisierului unde vor scrise erorile.In fisierul php.ini aceasta setare are o valoarea implicita, insa noi o vom schimba.

Toate aceste setari si multe altele se gasesc in fisierul php.ini.

Pentru a modifica aceste setari, astfel incat sa nu accesam mereu fisierul php.ini, PHP-ul ne ofera instructiunea ini_set().Aceasta intructiune accepta doi parametrii: numele setarii si o valorea pentru aceasta setare;

ini_set('nume_setare', 'valoare');

De asemenea, PHP ne mai ofera inca o instructiune, o instructiune folosita pentru a vedea ce valoare are o anumita setare de configurare in fisierul php.ini.

ini_get('nume_setare');


In continuare, vom adauga inca un nou folder proiectului nostru, si anume, logs, iar in interiorul acestui folder vom crea fisierul logs.txt.Acest fisier serveste ca fisier pentru scrierea erorilor.
 

PHP - LOGS FOLDER

 

Dupa ce am trecut si de acest pas, in fisierul index.php vom adauga:

 

  1.  
  2. <?php
  3.  
  4. define('ENVIRONMENT', 'production');
  5.  
  6. if (ENVIRONMENT === 'development') {
  7. ini_set('display_errors', 1);
  8. } else {
  9. ini_set('display_errors', 0);
  10. ini_set('log_errors', 1);
  11. ini_set('error_log', __DIR__ . '/logs/logs.txt');
  12. }
  13.  
  14. cata();

 

Nimic complicat, constanta ENVIRONMENT contine o valoare, pe care o putem modifica, astfel incat sa modificam mediul in care ruleaza aplicatia noastra, de asemenea, astfel incat sa modificam modul in care erorile sunt gestionate.Dupa cum putem observa, incercam sa apelam functia cata(), insa aceasta functie nu exista, ceea ce inseamna ca o eroare fatala va fi emisa, dar, pentru ca am modificat modul in care PHP gestioneaza erorile, aceasta eroare va fi scrisa in fisierul logs.txt din folderul logs.

Modificand valoarea constantei ENVIRONMENT cu "development", putem observa ca eroarea este afisata in navigatorul web, super tare!

De notat este faptul ca instructiunea error_reporting(); avand ca parametru valoarea E_ALL, este folosita pentru a ne asigura ca PHP va afisa toate nivelurile de erori ( E_ALL ).

De retinut este faptul ca erorile fatale opresc executia scriptului.

Cam atat cu acest tutorial, sper ca va este de ajutor!

Apropo, este posibil sa gasiti erori in redactarea acestui tutorial, imi pare rau pentru acest inconvenient!!

Autor articol
To help a friend in need is easy, but to give him your time is not always opportune.

Comentarii

Comentariu adaugat de Catalin
Da, multumesc mult, dupa 100 de ani am scris si eu ceva... imi pare rau! Vreau sa scriu mai multe tutoriale!
go to page top Catalin | 2016-06-12
Comentariu adaugat de marian
Bravo Catalin pentru noul tau tutorial.
go to page top marian | 2016-06-12

Exista 2 comentarii   

  • 1
Trebuie sa fii logat sa poti lasa un comentariu Autentificare Inregistrare Logare cu Facebook
top