Programul Debugging - un proces în care detectează și remediază unele erori. Pentru a face acest lucru, trebuie să știm, de exemplu, valorile variabilelor în fiecare etapă a programului, sau să se uite dacă pentru a efectua condiție, sau chiar se arunca cu capul în activitatea de funcții recursive.
De fapt, așa cum mulți recursie par complicate, am decis să fac un tutorial despre depanare cod în PHP. În acest articol ne vom uita la configurația de depanare folosind Xdebug PHP-extensie, și depana vom fi deja cunoscut la noi IDE PhpStorm.
Setarea PHP depanare OpenServer
In primul rand sa permit extinderea Xdebug în fișierul de configurare PHP (php.ini). Pentru a face acest lucru, mergeți la meniul OpenServer -> Avansat -> Configurare -> PHP.
Ar trebui să arate astfel:
După aceea trebuie să salvați fișierul (CTRL + S) și reporniți serverul web.
În această configurație serverul web pentru depanare completat.
Setarea PhpStorm de depanare
Acum trebuie să configurați depanare în PhpStorm. În primul rând du-te la setările:
File -> Setări
Aici, în meniul din stânga, selectați:
Limbile Cadrele -> PHP -> Depanați
Derulează în partea dreaptă a secțiunii Xdebug, și următoarele setări: Punerea
- Port Debug: 9000
- Forța de spargere la prima linie atunci când nici o mapare cale specificată: Off
- Forța de spargere la prima linie atunci când un script este în afara proiectului: Off
Salvați modificările făcând clic pe „OK“.
Acum, în partea din dreapta sus a programului apăsăm pe drop-down un meniu:
Și noi apăsați „Edit Configuration“.
În fereastra care apare în colțul din stânga sus vom apăsa pe semnul plus și selectați „PHP Debug la distanță“.
Și apăsați pe dreapta „Servere“ element la trei puncte:
În fereastra care apare, vom apăsa pe semnul plus din nou, și avem un server nou apare în listă. Să ne cerem următoarele setări pentru ea:
- Nume: localhost
- Gazdă: localhost
- Port: 80
- Debugger: Xdebug
Salvați prin apăsarea tastei „OK“ și completați complet setarea deschis mai devreme. Și anume:
- Tasta Ide (Session ID): PhpStorm
Și vedem că „localhost“ în „Servere“ Setați contactul nou creat.
Salvați făcând clic pe „OK“. La această configurație PhpStorm pentru depanare PHP-aplicații cu Xdebug finalizat.
Configurarea de depanare în Google Chrome
A rămas pentru mici - trebuie doar să instalați o extensie pentru Chrome numit Xdebug ajutor.
Vizavi de extensie Xdebug ajutor Hit butonul „Install“.
După ce extensia este instalat în colțul din dreapta sus al pictograma eroare Chrome apare. Hit pe butonul din dreapta al mouse-ului și faceți clic pe „Opțiuni“.
Aici, în punctul cheie IDE din meniul drop-down, selectați PhpStorm.
Și apăsați pe „Salvați“.
În acest pre-configurare este completă.
Începem să depana
Deci, toate setările sunt făcute, iar cazul a rămas pentru mici - pentru a începe să utilizați depanatorul.
Să ne în index.php nostru, vom scrie următorul cod:
Și apoi pe partea stângă a $ string x * = 2; Dați clic pe spațiul dintre numărul liniei și codul în sine - va exista un punct roșu.
Acesta breykpoint (breakpoint), sau, cum este numit - punct de întrerupere. Pentru ea, vom reveni mai târziu.
Acum, să porniți debugger - în colțul din dreapta sus al PhpStorm, în cazul în care se utilizează pentru a fi un vypadashka gol, și acum selectați „XDebug“, apăsăm pe pictograma eroare.
Debugging se execută la PhpStorm.
După aceea va fi o pictogramă verde.
Acum puteți actualiza pagina în Chrome și vedea că spânzurat în modul de pornire.
Și fereastra PhpStorm pentru a vedea următoarele:
Programul nostru a oprit executarea sa în locul breykpointa.
În partea de jos a programului (în fila Variabile), putem vedea valorile tuturor variabilelor din acest moment. După cum puteți vedea, acum (înainte de linia 5) $ x este egal cu 7.
Să faceți clic pe lângă tasta „F8“. Se efectuează executarea de cod de pe linia curentă și se oprește înainte de următoarea acțiune.
$ X înmulțit cu 2, și după cum putem vedea, valoarea ei a fost egală cu 14. Deci, prin intermediul depanare, putem monitoriza valorile variabilelor într-un anumit moment al programului.
În plus, există, desigur, și alte combinații de taste care sunt folosite în timpul de depanare.
Hai acum click lângă F9. Acest lucru va conduce la faptul că programul va continua execuția până la breykpointa următoare (da, ei pot instrui orice număr). În cazul în care acestea nu pot fi găsite (ca în exemplul nostru), programul tocmai a terminat activitatea sa.
Să jucăm cu codul de mai complicat:
Și a instala două breykpointa pe liniile 5 și 10.
Apoi ne reîmprospătați pagina noastră în browser și pe prima breykpoint va primi pe linia 10:
Aici vom vedea valoarea de $ x și y $ în funcția. Faceți clic pe lângă F9 și programul va rula până la până când ajunge la următoarea breykpointa.
Aici vedem că funcția este disponibilă în variabilele $ x si y $. Dar acest lucru este celelalte variabile, nu și cele care au fost transferate getSumOfCos () funcția. Aici am văzut domeniul de aplicare locală în acțiune.
În plus, există o mică fereastră „cadre“, în colțul din stânga jos, se numește „stiva de apel“. Aici, putem trece la poziția din care codul nostru a fost numit anterior. Deci, putem trece la locul unde getSum funcția () a fost apelată.
Și putem vedea variabilele care sunt disponibile în acest domeniu de aplicare (nivelul de mai sus).
Mai mult, în colțul din dreapta jos puteți vedea fereastra „ceasuri“. Acesta este un loc în care puteți specifica variabile sau expresii, valorile pentru care ați dori să vadă la îndemână. Acestea sunt adăugate prin semnul plus. În mica fereastra care apare, introduceți expresia pe care am dori să monitorizeze. Să fie $ x / 2.
Ok, rămâne să ia în considerare o altă cheie și sunteți gata de luptă - F7. Acesta vă permite să mergeți „interior“ de orice construcție.
Să terminăm de depanare apăsați F9. Noi acum doar un singur breykpoint pe numărul liniei de 15 și actualizați pagina în browser.
Dacă apăsați acum F8, programul termină executarea sa, și nu vom intra în funcții. Acest lucru se întâmplă pentru că în timpul de depanare lucrăm la anumite niveluri de cuiburi, iar dacă avem nevoie pentru a obține în interiorul funcției, va trebui să apăsați F7, în timp ce pe linia 15. După aceea, vom fi pe linia 10. Dacă acum apăsați F8, va ajunge pe linia 11. încă o dată - pe linia 12. Dacă ne acum, fiind pe 12 linii, F7 de presă, se va ajunge în interiorul getSum () funcția pe linia 5. Și dacă apăsați F8, atunci am fi pur și simplu, au crescut la un nivel mai ridicat, în acel loc , unde getSumOfCos funcție () a fost numit.
În principiu, cu atât mai mult de depanare nu aveți nevoie (acest lucru este suficient pentru mine personal).
Dar acum este timpul pentru a depana funcții recursive. Kohl aveți probleme cu ultima tema - să se ocupe de ei =)
Să sapi mai adânc și să ia codul din temele anterioare:
Breykpoint pus pe linia 3 și rulați programul.
Deci, în lovit variabil $ x = 3. Apăsați F8, și ajunge la linia 7, deoarece nu sunt îndeplinite condițiile. Acum, faceți clic următor și F7 din nou o să ajunge la partea de sus a funcției noastre, dar acum $ x = 2. Și în timp ce stiva de apel va crește cu o singură linie, așa că ne-am dus într-un alt nivel de imbricare.
Hit F8 din nou, ne aflăm pe linia 7. F7 Împingeți și din nou, ne aflăm în noul apel funcție, doar pentru a avea $ x = 1, iar în stiva de apel are un alt nivel.
Din nou F8, apoi F7. Și acum, ca funcție de x = $ 0 ° C.
Hit F8 și ne aflăm pe linia 4 (în prezent sunt îndeplinite condițiile). Pe această linie, programul va afișa 0.
Hit F8 și ajunge pe linia 5. Acum, funcția pentru a finaliza lucrările, și vom ajunge la un nivel mai ridicat, în locul în care a fost numit. Așa că am apăsați F8.
Voila, ne întoarcem la un nivel mai ridicat, în cazul în care variabila $ x = 1.
Și am ajuns la următoarea linie după cea în care numere apelate (1 - 1). Și în această linie, am adus numărul 1. Și apoi - F8 de presă, și urmăriți progresul programului. Sper că acum ați înțeles recursie să =)
Prin tradiție, permiteți-mi să vă reamintesc că, dacă ți-a plăcut lecția, atunci vă rugăm să - l împărtășească în viața socială. rețele sau oriunde altundeva. Și acum toate temele =)