Hibakeresés php-kód segítségével Xdebug phpstorm 2019

Hibakereső program - ez a folyamat, amelynek során észleli és kijavítja a hibákat. Ehhez tudnunk kell, hogy például a változók értékei minden lépésben a program, vagy nézd-e végrehajtani a feltétellel, vagy akár belevetik magukat a munka rekurzív függvények.
Tulajdonképpen annyi rekurzió tűnik bonyolultnak, úgy döntöttem, hogy a bemutató a hibakereső kód PHP-ben. Ebben a cikkben nézzük meg a debug konfigurációban a PHP-kiterjesztés Xdebug és hibakereső mi lesz a már ismert számunkra IDE PHPStorm.
Beállítása PHP hibakeresés OpenServer
Először is nézzük lehetővé Xdebug kiterjesztés PHP konfigurációs fájl (php.ini). Ehhez menj a OpenServer menü -> Speciális -> beállítások -> PHP.

Meg kell kinéznie:

Ezt követően meg kell menteni a fájlt (CTRL + S) és indítsa újra a webszervert.

Ebben a beállításban a webszerver a hibakeresés befejeződött.
Beállítás hibakeresés PHPStorm
Most kell beállítani hibakeresés PHPStorm. Először megy a beállításokat:
File -> Beállítások
Itt a bal oldali menüből válassza ki:
Nyelvek Keretek -> PHP -> Debug
Görgetés jobb oldalán Xdebug rész, és az alábbi beállításokat kérés:
- Debug port: 9000
- Force szünet első sorban, ha nincs útvonal feltérképezése megadva: Ki
- Force szünet az első sorban, amikor a szkript kívül a projekt: Ki

A változtatások mentéséhez kattintson az „OK” gombot.
Most a jobb felső része a programnak mi nyomja a legördülő menüből:

És nyomja meg az „Edit Configuration”.
A megjelenő ablakban a bal felső sarokban nyomja meg a plusz jelre, és válassza ki a „PHP Remote Debug”.

És nyomja meg a jogot a „Szerverek” napirendi három pontot:
A megjelenő ablakban, akkor nyomja meg a plusz jelre újra, és van egy új kiszolgáló megjelenik a listában. Tegyük fel a következő beállításokat a következő:
- Név: localhost
- Host: localhost
- Port: 80
- Hibajavító: Xdebug

Save gomb megnyomásával az „OK” és a teljes töltési nyitott környezetben korábban. nevezetesen:
- Ide kulcsot (session id): PHPSTORM
És azt látjuk, hogy a „localhost” a „Szerverek” Állítsa be az újonnan létrehozott kapcsolatot.

Mentse az „OK” gombbal. Ennél PHPStorm konfiguráció hibakereső PHP-alkalmazások Xdebug befejeződött.
Beállítása hibakeresés a Google Chrome
Ez maradt a kis - akkor csak telepíteni egy kiterjesztés a Chrome nevű Xdebug segítő.
Szemben kiterjesztése Xdebug helper Hit "Install" gombra.
A bővítmény telepítése a jobb felső sarokban a Chrome hiba ikon jelenik meg. Hit a jobb egérgombbal, majd kattintson a „Beállítások”.
Itt az IDE lényeg a legördülő menüből válassza ki a PhpStorm.
Majd nyomja meg a „Mentés”.
Ebben a pre-beállítás kész.
Elkezdjük hibakeresés
Így az összes beállítás megtörtént, és az ügy maradt a kis - és kezdi el használni a debugger.
Nézzük mi index.php, írunk a következő kódot:
És akkor a bal oldalon a string $ x * = 2; Kattints a tér között, a sorszám, és a kódot is - lesz egy piros pont.

Ez breykpoint (töréspont), vagy ahogy nevezik - a töréspont. A lány még visszatérünk később.
Most nézzük a debugger - a jobb felső sarokban a PhpStorm, ahol szokott lenni egy üres vypadashka, és most válassza ki a „Xdebug”, mi nyomja a hiba ikonra.

Hibakeresés fut PHPStorm.

Ezután lesz egy zöld ikon.
Most frissítse az oldalt a Chrome, és látni, hogy lógott a boot módban.

És PHPStorm ablakot látni a következő:

A program megállt a helyi végrehajtás breykpointa.
Alján a program (a változók fül) láthatjuk az értékeket az összes változó a pillanatban. Mint látható, most (mielőtt a vonal 5) $ x értéke 7.
Nézzük kattintva melletti „F8” billentyűt. Ez végzi a kódok végrehajtását a jelenlegi vonal és megáll, mielőtt a következő lépéseket.

$ X szorozva 2 és ahogy láthatjuk, az értéke egyenlő 14. Tehát útján hibakeresés, nyomon követhető a változók értékeit egy adott pillanatban a program.
Ezen kívül vannak természetesen más billentyűkombinációk, amelyek során a hibakeresés.
Nézzük most kattints melletti F9. Ez vezet ahhoz, hogy a program továbbra is végrehajtását, amíg a következő breykpointa (igen, ők is utasíthatja bármilyen szám). Ha nem található (mint a mi példánkban), a program most fejezte be munkáját.
Játsszunk kóddal bonyolultabb:
És illesszen be két breykpointa vonalakon 5 és 10.

Aztán frissíteni oldalunkat a böngésző és az első breykpoint fog kapni a 10-es vonal:

Itt látjuk az értéket a $ x és $ y a funkciót. Kattintson a Tovább F9 és a program fog futni, amíg amíg el nem éri a következő breykpointa.

Itt azt látjuk, hogy a funkció elérhető változók $ x és $ y. De ez a többi változó, és nem azokat, amelyek már át getSumOfCos () függvényt. Itt láttuk a helyi hatályú intézkedés.
Ezen kívül van egy kis ablak „keretek” a bal alsó sarokban, ez az úgynevezett „call stack”. Itt tudjuk váltani a pozíciót, ahonnan a kódot korábban megadta. Így tudjuk váltani a hely, ahol a függvény getSum () hívták.

És látjuk a változók, amelyek rendelkezésre állnak, amelyek hatálya alá (feletti).
Több a jobb alsó sarokban látható az ablak „órák”. Ez egy olyan hely, ahol megadhatja a változókat, kifejezéseket, amelyek értéke szeretne látni kéznél. Úgy adunk egy plusz jel. A kis ablakban jelenik meg, adja a kifejezést, hogy szeretnénk nyomon követni. Legyen ez a $ x / 2.

Ok, azt is meg vizsgálni egy másik gombot, és máris készen áll a harc - F7. Ez lehetővé teszi, hogy menjen „belső” bármilyen konstrukció.
Fejezzük hibakeresés nyomja meg az F9. Most csak egy breykpoint a sor számát 15 és frissítse az oldalt a böngészőben.

Ha most megnyomja az F8, a program befejezi a végrehajtást, és nem fogjuk bejutni funkciókat. Ez azért történik, mert közben a hibakeresés dolgozunk bizonyos szintű fészkelő, és ha kell, hogy a függvény belsejében, akkor meg kell nyomni F7, míg a 15 vezetéken Utána mi lesz a sorban 10. Ha most nyomja meg az F8, lesz kap on line 11. ismételten - on line 12. Ha most, hogy a 12 sort, nyomja meg az F7, meg fog bejutni getSum () függvény on line 5 és ha az F8, akkor azt egyszerűen emelkedett egy magasabb szintre, azon a helyen , ahol a függvény getSumOfCos () hívták.
Elvileg a több hibakereső nem kell (ez elég ahhoz, hogy nekem személyesen).
De most itt az ideje, hogy debug rekurzív függvények. Kohl bármilyen probléma az utolsó házi feladat - lássuk foglalkozik velük =)
Nézzük mélyebbre ásni, és vegye át a kódot az előző házi feladat:
Breykpoint fel sorban a 3. és a program futtatásához.

Tehát a hit jellemző változó $ x = 3. nyomja meg az F8, és eljutni a 7. sor, mert a feltételek nem teljesülnek. Most kattintson a következő és F7 újra fog eljutni a tetején a funkció, de most $ x = 2 És míg a hívási verem növekedni fog egy sort, így mentünk egy másik szinten fészkel.

Hit F8 ismét találjuk magunkat a vonalon 7. Tolja F7 és újra találjuk magunkat az új funkció hívás, csak hogy $ x = 1 és a hívási verem egy másik szinten.

Ismét F8, majd F7. És most, a függvényében $ x = 0.
Hit F8 és találjuk magunkat a 4-es vonal (jelenleg a feltételek teljesülnek). Ezen a vonalon, a program megjeleníti 0.

Hit F8 és kap online 5. Most a funkciót, hogy befejezze a munkát, és reméljük, hogy egy magasabb szintre, azon a helyen, ahol ez volt az úgynevezett. Tehát ismét az F8.
Voila, mi vissza egy magasabb szintre, ahol a változó $ x = 1.

És mi van a következő sor után, amelyben a hívott szám (1-1). És ebben a sorban, hoztunk száma 1 És akkor - a sajtó F8, és nézni a program előrehaladásáról. Remélem most már érted rekurziót =)
A hagyomány szerint, hadd emlékeztessem, hogy ha tetszett a lecke, akkor kérjük - ossza meg a szociális. hálózatok vagy bárhol máshol. És most az összes házi =)