{"id":230155,"date":"2022-12-06T18:49:00","date_gmt":"2022-12-06T15:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230155"},"modified":"2022-12-07T12:18:30","modified_gmt":"2022-12-07T09:18:30","slug":"instalowanie-xdebug-czesc-1-modul-xdebug","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/instalowanie-xdebug-czesc-1-modul-xdebug\/","title":{"rendered":"Instalowanie Xdebug, cz\u0119\u015b\u0107 1: Modu\u0142 Xdebug"},"content":{"rendered":"\n<p>Do tej pory om\u00f3wili\u015bmy wiele zagadnie\u0144 zwi\u0105zanych z prac\u0105 z WordPressem i debugowaniem. Dotyczy to zw\u0142aszcza pracy z narz\u0119dziami i wtyczkami dost\u0119pnymi w WordPressie. Je\u015bli dopiero do\u0142\u0105czasz do tej konkretnej serii, upewnij si\u0119, \u017ce zapozna\u0142e\u015b si\u0119 z nast\u0119puj\u0105cymi wpisami:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/czytanie-i-zrozumienie-dziennikow-bledow-wordpress-czesc-1\/\" title=\"Czytanie i zrozumienie dziennik\u00f3w b\u0142\u0119d\u00f3w WordPress, cz\u0119\u015b\u0107 1\">Czytanie i zrozumienie dziennik\u00f3w b\u0142\u0119d\u00f3w WordPress, cz\u0119\u015b\u0107 1<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/czytanie-i-zrozumienie-dziennikow-bledow-wordpress-czesc-2\/\" title=\"Czytanie i zrozumienie dziennik\u00f3w b\u0142\u0119d\u00f3w WordPress, cz\u0119\u015b\u0107 2\">Czytanie i zrozumienie dziennik\u00f3w b\u0142\u0119d\u00f3w WordPress, cz\u0119\u015b\u0107 2<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/tommcfarlin.com\/debugging-within-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Podstawowe debugowanie w WordPress<\/a><\/strong><\/li>\n<\/ul>\n<p>W poprzednim po\u015bcie przypomnij sobie, \u017ce powiedzia\u0142em, co nast\u0119puje:<\/p>\n<blockquote>\n<p>Ale je\u015bli chcesz wej\u015b\u0107 w \u015bwiat profesjonalnego, praktycznego debugowania z poziomu swojego IDE, wa\u017cne jest, aby zrozumie\u0107, co, jak i dlaczego.<\/p>\n<\/blockquote>\n<p>I wreszcie jeste\u015bmy gotowi, aby przyjrze\u0107 si\u0119, czego to wymaga. Jednak rozpocz\u0119cie pracy oznacza, \u017ce \u200b\u200bmusimy zrozumie\u0107 kilka rzeczy o <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong>, terminologi\u0119 i mie\u0107 IDE, kt\u00f3re jest sp\u00f3jne dla wszystkich czytaj\u0105cych t\u0119 konkretn\u0105 seri\u0119.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743dbd5b19.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743dbd5b19.png\" alt=\"Instalowanie Xdebug, cz\u0119\u015b\u0107 1: Modu\u0142 Xdebug\"><\/a><\/p>\n<p>Wi\u0119c to zostanie podzielone na dwie cz\u0119\u015bci.<\/p>\n<ul>\n<li>Najpierw przyjrzymy si\u0119 terminologii wymaganej do debugowania i upewnimy si\u0119, \u017ce mamy odpowiedni\u0105 konfiguracj\u0119 IDE w naszym \u015brodowisku programistycznym,<\/li>\n<li>Nast\u0119pnie przyjrzymy si\u0119, jak upewni\u0107 si\u0119, \u017ce poprawnie zainstalowali\u015bmy Xdebug, a nast\u0119pnie pod\u0142\u0105czymy go do naszego \u015brodowiska programistycznego, aby\u015bmy mogli go uruchomi\u0107.<\/li>\n<\/ul>\n<p>Je\u015bli w ci\u0105gu ostatnich kilku lat czyta\u0142e\u015b r\u00f3\u017cne tre\u015bci w tym blogu, niekt\u00f3re z nich mog\u0105 wydawa\u0107 si\u0119 znajome. Je\u015bli nie, to nic wielkiego. Pami\u0119taj, \u017ce celem jest upewnienie si\u0119, \u017ce wszyscy jeste\u015bmy na tym samym poziomie, gdy post\u0119pujemy dalej z wy\u017cej wymienion\u0105 prac\u0105 i przez reszt\u0119 serii.<\/p>\n<p>Powiedziawszy to, zacznijmy.<\/p>\n<h2>Instalowanie Xdebug, cz\u0119\u015b\u0107 1<\/h2>\n<p>Jak wspomniano powy\u017cej, ten zestaw post\u00f3w b\u0119dzie s\u0142u\u017cy\u0142 jednemu z dw\u00f3ch cel\u00f3w, z kt\u00f3rych oba mo\u017cna zwi\u0119\u017ale opisa\u0107 (drugi z nich zostanie opisany w nast\u0119pnym po\u015bcie):<\/p>\n<ol>\n<li>Terminologia debugowania<\/li>\n<li>Instalowanie IDE<\/li>\n<\/ol>\n<p>Chocia\u017c wielu czytaj\u0105cych to b\u0119dzie ju\u017c zaznajomionych z pewn\u0105 terminologi\u0105 (zw\u0142aszcza je\u015bli korzysta\u0142e\u015b wcze\u015bniej z narz\u0119dzi po stronie klienta, a nawet narz\u0119dzi po stronie serwera) i masz ju\u017c wybranego edytora, wa\u017cne jest, aby upewni\u0107 si\u0119, \u017ce jeste\u015bmy przynajmniej pracuj\u0105c na sp\u00f3jnym fundamencie.<\/p>\n<p>Je\u015bli masz pewno\u015b\u0107 co do swoich umiej\u0119tno\u015bci w dw\u00f3ch wymienionych powy\u017cej punktach, nast\u0119pny post prawdopodobnie b\u0119dzie dla Ciebie bardziej interesuj\u0105cy. Je\u015bli, z drugiej strony, wkracza to na nowe terytorium, powinno to po\u0142o\u017cy\u0107 podwaliny pod wszystko, czego potrzebujesz, aby upewni\u0107 si\u0119, \u017ce pomy\u015blnie debugujesz projekty w WordPressie.<\/p>\n<p>Co wi\u0119cej, upewnimy si\u0119, \u017ce masz sp\u00f3jny zestaw narz\u0119dzi do pracy, aby\u015bmy mogli nadal i\u015b\u0107 naprz\u00f3d ze standardowym zestawem narz\u0119dzi, aby stworzy\u0107 najbardziej wydajne \u015brodowisko programistyczne.<\/p>\n<h3>1 Terminologia debugowania<\/h3>\n<p>W zale\u017cno\u015bci od Twojego do\u015bwiadczenia mo\u017cesz sprawi\u0107, \u017ce istnieje od pi\u0119ciu do siedmiu termin\u00f3w, z kt\u00f3rych ka\u017cdy jest zwi\u0105zany z debugowaniem. Opisa\u0142em to wcze\u015bniej w innych postach na tej stronie. Za ka\u017cdym razem jednak robi\u0142em to z nieco innym podej\u015bciem do tre\u015bci.<\/p>\n<p>W tym po\u015bcie staram si\u0119 uczyni\u0107 to tak dok\u0142adnym i precyzyjnym, jak to tylko mo\u017cliwe, aby zapewni\u0107 sp\u00f3jne odniesienie, kt\u00f3re b\u0119dziemy mogli wykorzysta\u0107 w kolejnych postach (i pracy). W obecnej formie, oto terminy, kt\u00f3re, jak s\u0105dz\u0119, ka\u017cdy powinien zna\u0107, poniewa\u017c odnosz\u0105 si\u0119 do ich debugera.<\/p>\n<ol>\n<li><strong>Punkty przerwania<\/strong>. Mo\u017cna je uzna\u0107 za podstawowe bloki debugowania. M\u00f3wi\u0105c najpro\u015bciej, s\u0105 to miejsca w kodzie, w kt\u00f3rych chcesz wstrzyma\u0107 wykonywanie, aby m\u00f3c sprawdzi\u0107, co si\u0119 dzieje w kodzie. By\u0107 mo\u017ce ma to zwi\u0105zek ze zmiennymi; mo\u017ce ma to zwi\u0105zek z funkcjami, mo\u017ce ma co\u015b wsp\u00f3lnego z czym\u015b innym. Niezale\u017cnie od tego jest to wa\u017cne, poniewa\u017c m\u00f3wisz programowi \u201ehej, chc\u0119 zatrzyma\u0107 wykonywanie programu w tym wierszu, abym m\u00f3g\u0142 zbada\u0107 stan programu&quot;.<\/li>\n<li><strong>Zegarki<\/strong>. S\u0105 to wywo\u0142ania funkcji, zmienne lub inne miejsca w kodzie, kt\u00f3re mog\u0105 by\u0107 ustawione tak, \u017ce jeste\u015bmy w stanie dos\u0142ownie zobaczy\u0107 zmiany warto\u015bci podczas wykonywania. Je\u015bli m\u00f3wimy o funkcjach, mo\u017cemy odnosi\u0107 si\u0119 do warto\u015bci argument\u00f3w, kt\u00f3re s\u0105 ustawiane i manipulowane w ramach funkcji. Je\u015bli m\u00f3wimy o zmiennych, m\u00f3wimy o zmiennych; wtedy m\u00f3wimy o warto\u015bciach, kt\u00f3re przechowuj\u0105 w dowolnym momencie podczas wykonywania programu. Mo\u017ce to mie\u0107 miejsce, gdy ustawiamy okre\u015blony punkt przerwania, lub gdy przechodzimy przez kod i obserwujemy stan zmiennej podczas wykonywania programu.<\/li>\n<li><strong>Rozpocznij<\/strong>. Ta akcja po prostu nakazuje debugerowi rozpocz\u0119cie monitorowania serwera WWW. Zasadniczo obserwuje wszystko, co dzieje si\u0119 w programie, a je\u015bli zostan\u0105 ustawione jakiekolwiek punkty przerwania, jest przygotowany do zatrzymania wykonywania i umo\u017cliwienia nam przyjrzenia si\u0119, co dzieje si\u0119 ze stanem programu. Technicznie mo\u017cna rozpocz\u0105\u0107 sesj\u0119 debugowania i nic nie robi\u0107. Nie jest to produktywne, ale mo\u017cliwe.<\/li>\n<li><strong>Wkrocz do<\/strong>. Za\u0142\u00f3\u017cmy na chwil\u0119, \u017ce masz ustawiony punkt przerwania tu\u017c nad wywo\u0142aniem funkcji lub wywo\u0142aniem funkcji. To pozwala nam wkroczy\u0107 do funkcji, aby monitorowa\u0107 warto\u015b\u0107 ka\u017cdego argumentu, spos\u00f3b manipulowania nimi w funkcji, co funkcja zwraca (je\u015bli w og\u00f3le) i wszystko, co dzieje si\u0119 w funkcji.<\/li>\n<li><strong>Przekroczy\u0107<\/strong>. Z drugiej strony za\u0142\u00f3\u017cmy, \u017ce przechodzisz przez funkcj\u0119 i nie jeste\u015b pewien, czy chcesz zag\u0142\u0119bi\u0107 si\u0119 w funkcj\u0119. By\u0107 mo\u017ce interesuj\u0105 Ci\u0119 tylko warto\u015bci zwracane przez funkcj\u0119 lub stan programu po uruchomieniu funkcji, ale nie interesuje Ci\u0119, co dzieje si\u0119 w ramach funkcji. W gruncie rzeczy traktujesz to jako czarn\u0105 skrzynk\u0119. To w\u0142a\u015bnie oznacza przekroczenie funkcji. Oznacza to, \u017ce pozwalasz funkcji dzia\u0142a\u0107 bez wchodzenia w ni\u0105, aby zobaczy\u0107, jak dzia\u0142a.<\/li>\n<li><strong>Wyjd\u017a<\/strong>. Ten szczeg\u00f3lny aspekt debugowania jest przydatny, gdy znajdziesz si\u0119 w funkcji i jeste\u015b gotowy, aby powr\u00f3ci\u0107 do g\u0142\u00f3wnej linii wykonania, poniewa\u017c widzia\u0142e\u015b ju\u017c wszystko, co musisz zobaczy\u0107. By\u0107 mo\u017ce by\u0142e\u015b \u015bwiadkiem zmiany warto\u015bci zmiennej, mo\u017ce widzia\u0142e\u015b, jak algorytm wykonuje wystarczaj\u0105co du\u017co pracy, aby wiedzie\u0107, \u017ce zrobi\u0142 to, co chcesz. Niezale\u017cnie od przypadku, pozwoli to wyj\u015b\u0107 z funkcji, trafnie nazwanej, a nast\u0119pnie przej\u015b\u0107 do<\/li>\n<li><strong>Zatrzymaj si\u0119<\/strong>. <strong>Tak jak start<\/strong> nakazuje debugerowi nas\u0142uchiwanie serwera, zwracanie uwagi na punkty przerwania i wy\u015bwietlanie informacji o post\u0119pie dzia\u0142ania aplikacji, tak stop robi dok\u0142adnie odwrotnie. M\u00f3wi debugerowi, \u017ce sko\u0144czyli\u015bmy nas\u0142uchiwa\u0107, obserwowa\u0107 i zwraca\u0107 uwag\u0119 na stan programu. Nie oznacza to, \u017ce program si\u0119 zatrzymuje \u2013 tylko debuger. Je\u015bli wi\u0119c sko\u0144czy\u0142e\u015b zwraca\u0107 uwag\u0119 na wszystkie informacje dostarczone przez debuger, prawdopodobnie mo\u017cesz zatrzyma\u0107 debuger.<\/li>\n<\/ol>\n<p>Na koniec chcia\u0142bym doda\u0107, \u017ce PHP jest wyj\u0105tkowe, poniewa\u017c oferuje r\u00f3\u017cnorodne publicznie dost\u0119pne zmienne, takie jak <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.get.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_GET<\/a> ,<\/strong> <a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.post.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_POST<\/a>, <a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.request.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_REQUEST<\/a> i tak dalej. S\u0105 to r\u00f3wnie\u017c dost\u0119pne dla nas zmienne, kt\u00f3re mo\u017cemy obserwowa\u0107. Nie ogranicza si\u0119 to tylko do tego, co mamy napisane w naszym kodzie.<\/p>\n<p>Jest to szczeg\u00f3lnie przydatne, gdy patrzymy na dane dotycz\u0105ce prze\u0142adowa\u0144 stron, \u017c\u0105da\u0144 Ajax (takich jak podczas akcji GET i POST) i tak dalej.<\/p>\n<h3>2 Instalacja Xdebuga<\/h3>\n<p>Chocia\u017c prawdopodobnie wynika to z poprzednich post\u00f3w z tej serii, zamierzam u\u017cywa\u0107 <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio Code<\/a><\/strong> jako mojego wybranego IDE. Je\u015bli go nie masz, to polecam. Je\u015bli jednak masz IDE, z kt\u00f3rym czujesz si\u0119 komfortowo, to polecam.<\/p>\n<ul>\n<li>Kod jest ci\u0105gle rozwijany,<\/li>\n<li>ma aktywn\u0105 ekonomi\u0119 rozszerze\u0144,<\/li>\n<li>dzia\u0142a dobrze z r\u00f3\u017cnymi j\u0119zykami, narz\u0119dziami itp.,<\/li>\n<li>jest lekki i dobrze wsp\u00f3\u0142pracuje z r\u00f3\u017cnymi rzeczami, kt\u00f3rych mo\u017cemy u\u017cywa\u0107 w programowaniu WordPress (takim jak PHP, HTML i JavaScript).<\/li>\n<\/ul>\n<p>Co wi\u0119cej, <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Code<\/a><\/strong> ma r\u00f3wnie\u017c solidne wsparcie dla Xdebug. Aby upewni\u0107 si\u0119, \u017ce debugger jest poprawnie zainstalowany, musimy upewni\u0107 si\u0119, \u017ce mamy zainstalowane rozszerzenie z nasz\u0105 instalacj\u0105 PHP, \u017ce jest ono dost\u0119pne w naszym systemie i mo\u017ce by\u0107 wykonane w naszym IDE. Przyjrzymy si\u0119 temu, ale najpierw musimy si\u0119 upewni\u0107, \u017ce Xdebug jest poprawnie zainstalowany.<\/p>\n<h4>Instalowanie Xdebuga<\/h4>\n<p>Instalacja Xdebug jest \u0142atwa. Z poziomu sesji terminalowej musisz wykona\u0107 <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-16-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nast\u0119puj\u0105ce polecenie:<\/a><\/strong><\/p>\n<p>Gdy to zrobisz, podczas instalacji zauwa\u017cysz kilka rzeczy w oknie terminala. Je\u015bli nie jeste\u015b szczeg\u00f3lnie zainteresowany, nie musisz si\u0119 martwi\u0107 o to, co robi, dop\u00f3ki nie powr\u00f3cisz do wiersza polecenia.<\/p>\n<p>W tym momencie modu\u0142 Xdebug zosta\u0142 zainstalowany; jednak b\u0119dziesz musia\u0142 powiedzie\u0107 PHP, \u017ce jest zainstalowany i gdzie mo\u017ce znale\u017a\u0107 modu\u0142.<\/p>\n<p>Aby zainstalowa\u0107 rozszerzenie z aktualn\u0105 wersj\u0105 PHP, wa\u017cne jest, aby wiedzie\u0107, kt\u00f3r\u0105 wersj\u0119 PHP zainstalowa\u0142e\u015b. Je\u015bli u\u017cywasz mened\u017cera pakiet\u00f3w, mo\u017ce by\u0107 wiele wersji i b\u0119dziesz musia\u0142 wskaza\u0107 plik konfiguracyjny tej konkretnej wersji, gdzie znale\u017a\u0107 modu\u0142.<\/p>\n<p>I odwrotnie, je\u015bli masz zainstalowan\u0105 pojedyncz\u0105 wersj\u0119, b\u0119dziesz musia\u0142 wskaza\u0107 jedn\u0105 wersj\u0119 PHP, gdzie jest zainstalowana. Po pierwsze, mo\u017cesz sprawdzi\u0107, gdzie Xdebug istnieje w systemie plik\u00f3w za pomoc\u0105 <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-17-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tego polecenia:<\/a><\/strong><\/p>\n<p>Nast\u0119pnie b\u0119dziesz musia\u0142 zaktualizowa\u0107 plik konfiguracyjny dla swojej instalacji PHP. Aby to zrobi\u0107, po prostu uruchom <strong>php -v<\/strong> z wiersza polece\u0144, a poka\u017ce ci, kt\u00f3rej wersji u\u017cywasz. St\u0105d b\u0119dziesz musia\u0142 zlokalizowa\u0107 plik inicjuj\u0105cy dla u\u017cywanej wersji PHP. Je\u015bli po uruchomieniu <strong>php -v<\/strong> wr\u00f3cisz z czym\u015b takim:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" alt=\"Instalowanie Xdebug, cz\u0119\u015b\u0107 1: Modu\u0142 Xdebug\"><\/a><\/p>\n<p>To m\u00f3wi nam, \u017ce u\u017cywamy PHP 7.1.19 (cho\u0107 twoja wersja mo\u017ce si\u0119 r\u00f3\u017cni\u0107). St\u0105d wiemy, \u017ce nale\u017cy szuka\u0107 okre\u015blonego pliku konfiguracyjnego PHP dla tej wersji PHP. Aby to zrobi\u0107, poszukaj <strong>pliku php.ini<\/strong> w katalogu \/usr\/local\/etc\/php\/7.1\/ w twoim systemie (chocia\u017c dok\u0142adny numer wersji mo\u017ce si\u0119 r\u00f3\u017cni\u0107).<\/p>\n<p>Stamt\u0105d otw\u00f3rz plik, a nast\u0119pnie dodaj <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-18-reference-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nast\u0119puj\u0105cy wiersz kodu:<\/a><\/strong><\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>To powie PHP, gdzie znajduje si\u0119 Xdebug, aby m\u00f3g\u0142 by\u0107 u\u017cywany w Twojej pracy.<\/p>\n<h4>Testowanie instalacji<\/h4>\n<p>Aby sprawdzi\u0107, czy instalacja przebieg\u0142a poprawnie, mo\u017cesz uruchomi\u0107 nast\u0119puj\u0105cy kod <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-19-verify-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">w swoim terminalu:<\/a><\/strong><\/p>\n<p>A potem powiniene\u015b zobaczy\u0107 na ekranie co\u015b takiego:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.png\" alt=\"Instalowanie Xdebug, cz\u0119\u015b\u0107 1: Modu\u0142 Xdebug\"><\/a><\/p>\n<p>Zauwa\u017c, \u017ce na powy\u017cszym zrzucie ekranu widzisz nast\u0119puj\u0105ce elementy:<\/p>\n<blockquote>\n<p>z Xdebug v2.6.0, Copyright (c) 2002-2018, Derick Rethans<\/p>\n<\/blockquote>\n<p>Oznacza to, \u017ce modu\u0142 zosta\u0142 zainstalowany i PHP o tym wie.<\/p>\n<h2>Konfiguracja Twojego IDE<\/h2>\n<p>W nast\u0119pnym po\u015bcie przyjrzymy si\u0119 powi\u0105zaniu Xdebug z naszym IDE. Zak\u0142adaj\u0105c, \u017ce wykona\u0142e\u015b kroki opisane w tym po\u015bcie i \u017ce wszystko posz\u0142o dobrze, powiniene\u015b by\u0107 gotowy, poniewa\u017c dotyczy to przygotowania si\u0119 do debugowania projekt\u00f3w WordPress.<\/p>\n<p>Jednak dop\u00f3ki nie uruchomimy go w IDE, nie jest on tak u\u017cyteczny (lub jest trudniejszy, ni\u017c musi by\u0107). Wi\u0119c w przysz\u0142ym tygodniu przyjrzymy si\u0119 dok\u0142adnie, jak to zrobi\u0107.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym po\u015bcie om\u00f3wimy instalacj\u0119 Xdebug, aby by\u0142 dost\u0119pny w naszej instalacji PHP. W ko\u0144cu to w\u0142a\u015bnie pozwoli nam debugowa\u0107 nasz kod z poziomu IDE.<\/p>\n","protected":false},"author":1,"featured_media":236541,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,805],"tags":[1169],"class_list":["post-230155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-php-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=230155"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230155\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/236541"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=230155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=230155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=230155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}