ПредишенСледващото

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2019 г.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Отстраняване на грешки програма - процес, по време на която открива и поправя грешки. За да направите това, ние трябва да знаем, например, стойностите на променливите на всеки етап на програмата, или да се търси дали да изпълни условието, или дори да се потопите в работата на рекурсивни функции.

Всъщност, тъй като много рекурсия да изглежда сложно, реших да направя един урок за отстраняване на грешки код в PHP. В тази статия ще разгледаме конфигурация за отстраняване на грешки при използване Xdebug на PHP-разширение и отстраняване на грешки ще бъдат вече познатите ни IDE PHPStorm.

Създаване на PHP грешки OpenServer

Преди всичко нека да се даде възможност на Xdebug разширение в конфигурационния файл на PHP (php.ini). За да направите това, отидете в менюто OpenServer -> Advanced -> Configuration -> PHP.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Тя трябва да изглежда така:

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

След това трябва да запазите (CTRL + S) файла и рестартирайте уеб сървъра.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

При тази конфигурация на уеб сървъра за отстраняване на грешки завършена.

Създаване на грешки PHPStorm

Сега ние трябва да конфигурирате отстраняване на грешки в PHPStorm. На първо място отидете на настройките:
File -> Настройки

Тук, в лявото меню, изберете:
Езици Рамки -> PHP -> Debug

Scrolls до дясната страна на сечение Xdebug и следните настройки въпроса:

  • Debug порт: 9000
  • почивка сили на първа линия, когато е посочено няма път картиране: Изключено
  • почивка сили на първа линия, когато скрипт е извън проекта: Изключено

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Запазете промените, като кликнете върху "OK".

Сега в горната дясна част на програмата ние натиснете върху падащото меню:

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

И ние натиснете "Edit Configuration".

В прозореца, който се появява в горния ляв ъгъл заедно продължаваме знака плюс и изберете "PHP Remote Debug".

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

И натиснете десен ъгъл на "Сървъри" елемент в три точки:

В прозореца, който се появява, заедно продължаваме знака плюс отново, а ние имаме нов сървър се появява в списъка. Нека да зададете следните настройки за него:

  • Име: Localhost
  • Водещ: Localhost
  • Порт: 80
  • Debugger: Xdebug

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Запазване като натиснете "OK" и пълно запълване отворен настройката по-рано. А именно:

  • Иде ключ (сесиен идентификатор): PHPSTORM

И ние виждаме, че "Localhost" в "Сървъри" Задайте новосъздадения контакт.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Запиши като щракнете върху "OK". На този PHPStorm конфигурация за отстраняване на грешки PHP-приложения с Xdebug завършена.

Създаване на отстраняване на грешки в Google Chrome

Тя остава за малките - имате нужда от инсталиране, само разширение за Chrome, наречено Xdebug помощник.

Срещу разширение Xdebug помощник да натисне бутона "Install".

След като бъде инсталиран в горния десен ъгъл на иконата на буболечка Chrome се появи. Хит на десния бутон на мишката и изберете "Options".

Тук, в ключов момент от IDE в падащото меню изберете PhpStorm.

И натиснете "Save".

В тази предварителна конфигурация е пълна.

Започваме да отстраняване на грешки

Така че, всички настройки са направени и случаят остава за малките - да започнат да използват за отстраняване на грешки.

Нека в нашето index.php, пишем следния код:

И след това в ляво на низ $ х * = 2; Кликнете върху пространството между номера на реда и в самия код - няма да има червена точка.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Тя breykpoint (прекъсване), или, както я наричат ​​- точка на пречупване. За нея ще се върнем по-късно.

Сега, нека да включите дебъгер - в горния десен ъгъл на PhpStorm, където има използвани за да бъде празен vypadashka, а сега изберете "XDebug", ние натиснете върху иконата на буболечка.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Отстраняване на грешки работи в PHPStorm.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

След това ще бъде зелена икона.

Сега можете да опресните страницата, Chrome, и да видим, че тя висеше в режим на зареждане.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

И прозорец PHPStorm да видите следното:

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Нашата програма е спрял изпълнението му на мястото breykpointa.

В долната част на програмата (в раздела Променливи) можем да видим стойностите на всички променливи в момента. Както можете да видите, сега (преди линия 5) $ х е равно на 7.

Нека да кликнете до "F8" ключ. Тя извършва изпълнението на код на текущия ред и спира преди следващото действие.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

$ X, умножена по две, и както можем да видим, стойността му е равна на 14. Така че с помощта на отстраняване на грешки, можем да следят стойностите на променливите в даден момент от програмата.

В допълнение, има, разбира се, и други комбинации от клавиши, които се използват по време на отстраняване на грешки.

Нека сега щракнете до F9. Това ще доведе до факта, че програмата ще продължи изпълнението до следващото breykpointa (да, те могат да се нарежда на всяко число). Ако те не могат да бъдат намерени (както е в нашия пример), програмата току-що завърши своята работа.

Да играем с кода по-сложно:

И инсталирате два breykpointa по линии 5 и 10.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Тогава опресним страница в браузъра и в първия breykpoint ще получите по линията 10:

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Тук ние виждаме стойността на $ х и $ ш във функцията. Кликнете върху до F9 и програмата ще продължи до докато стигнете до следващото breykpointa.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Тук ние виждаме, че функцията е наличен в променливи $ х и у $. Но това е другите променливи, а не тези, които са били прехвърлени на getSumOfCos () функция. Тук видяхме местната обхвата на действие.

В допълнение, има малък прозорец "Рамки" в долния ляв ъгъл, това се нарича "покана стека". Ето, ние можем да преминат към позицията, от която ни код е наречен по-рано. Така че ние можем да преминат към мястото, където беше повикан getSum на функцията ().

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

И ние можем да видим на променливите, които се предлагат в този обхват (ниво горе).

Още в долния десен ъгъл можете да видите прозореца "Часовници". Това е място, където можете да посочите променливи или изрази, чиито стойности, които бихте искали да видите на една ръка разстояние. Те се добавят към със знак плюс. В малкото прозорче, което се появява, въведете израза, който бихме искали да наблюдавате. Оставете го да бъде $ х / 2.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Добре, че остава да се разгледа друг ключов и сте готови за битка - F7. Тя ви позволява да се "вътре" на който и да е строителство.

Нека да завърша отстраняване на грешки натиснете F9. Сега само един breykpoint по линия номер 15 и опреснете страницата в браузъра.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Ако сега натиснете F8, програмата завършва изпълнението му, а ние не сме ще влязат функции. Това се случва, защото по време на отстраняване на грешки работим по определени нива на влагане, и ако е необходимо да се получи в самата функция, вие ще трябва да натиснете F7, а по линия 15. След това, ние ще бъдем на линия 10. Ако сега натиснете F8, ще се кача на линия 11. отново - по линия 12. Ако сега, е на 12 ред, натиснете F7 за употреба, която ще влезе вътре getSum () на ред 5. И ако ние натиснете F8, тогава ние просто ще са се увеличили с по-високо ниво, на това място , където getSumOfCos функцията () се наричат.

По принцип, колкото повече отстраняване на грешки не е нужно (това е достатъчно за мен лично).

Но сега е време за отстраняване на грешки рекурсивни функции. Кол имате някакви проблеми с последната домашното - да се справите с тях =)

Нека да бръкнат по-дълбоко и да вземе кода от предишния домашното:

Breykpoint сложи ред 3 и стартирайте програмата.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Така че, в хит функция на променливата $ х = 3. Натиснете F8, и стигнем до линията 7, тъй като условията не са изпълнени. Сега кликнете следващия и F7 отново ще стигнем до върха на нашата функция, но сега $ х = 2. И докато стека на повикване ще се увеличи с един ред, така че ние отиде в друго ниво на гнездене.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Хит F8 отново се намираме по линия 7. Натиснете F7 и отново се намираме в нова функция разговор, само да има $ х = 1, а в набора от повикване има друго ниво.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Отново F8 и след това F7. И сега, като функция от $ х = 0.
Хит F8 и се намираме на линията 4 (сега са изпълнени условията). На тази линия, програмата ще покаже 0.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

Хит F8 и да получите по линия 5. Сега функцията да си свърши работата, а ние да стигнем до по-високо ниво, на мястото, където тя се нарича. Така че ние натиснете F8.

Voila, ние сме обратно към по-високо ниво, където променливата $ х = 1.

Отстраняване на грешки в PHP-код чрез xdebug phpstorm през 2017 г.

И стигнахме до следващия ред след този, в който набрани номера (1 - 1). И в този ред, ние сме прави броя 1. И след това - натиснете F8 на, и да гледате на напредъка на програмата. Надявам се, че сега разбирате рекурсия да =)

По традиция, позволете ми да ви напомня, че ако сте харесали урока, моля - да го споделите в социална. мрежи или някъде другаде. И сега всички от домашното =)

Свързани статии

Подкрепете проекта - споделете линка, благодаря!