{"id":230073,"date":"2022-12-03T13:29:00","date_gmt":"2022-12-03T10:29:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230073"},"modified":"2022-12-03T18:56:14","modified_gmt":"2022-12-03T15:56:14","slug":"natywne-narzedzia-do-debugowania-wordpress-ktore-nie-wymagaja-ide","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/natywne-narzedzia-do-debugowania-wordpress-ktore-nie-wymagaja-ide\/","title":{"rendered":"Natywne narz\u0119dzia do debugowania WordPress, kt\u00f3re nie wymagaj\u0105 IDE"},"content":{"rendered":"\n<p>Je\u015bli w\u0142a\u015bnie zdarzy\u0142o Ci si\u0119 do\u0142\u0105czy\u0107 do <strong><a href=\"https:\/\/tommcfarlin.com\/members-only-content\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cz\u0142onkostwa<\/a><\/strong> w witrynie i szukasz tre\u015bci specjalnie dla <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">The Independent WordPress Developer<\/a><\/strong>, polecam przeczytanie <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/instalowanie-wordpressa-dla-rozwoju-lokalnego\/\" title=\"poprzedniego posta\">poprzedniego posta<\/a><\/strong> \u2013 przynajmniej \u2013 aby przygotowa\u0107 si\u0119 na tre\u015b\u0107 w tym po\u015bcie.<\/p>\n<p>Je\u015bli jednak chcesz nadrobi\u0107 zaleg\u0142o\u015bci w poprzednim artykule, oto kr\u00f3tka lista wszystkiego, co do tej pory napisano:<\/p>\n<ol>\n<li><strong><a href=\"https:\/\/tommcfarlin.com\/local-development-for-the-indie-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Lokalny rozw\u00f3j dla niezale\u017cnego programisty WordPress<\/a><\/strong><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/databases-and-tools-indie-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bazy danych i narz\u0119dzia dla niezale\u017cnego programisty WordPress<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/instalowanie-wordpressa-dla-rozwoju-lokalnego\/\" title=\"Instalowanie WordPressa dla rozwoju lokalnego\">Instalowanie WordPressa dla rozwoju lokalnego<\/a><\/li>\n<\/ol>\n<p>Gdy przygotowujemy si\u0119 do rozmowy o bardziej zaawansowanych tematach, takich jak debugowanie i IDE, warto najpierw zwr\u00f3ci\u0107 uwag\u0119 na dost\u0119pne narz\u0119dzia, kt\u00f3re mo\u017cemy zainstalowa\u0107 w WordPressie, kt\u00f3re pomog\u0105 nam w problemach z debugowaniem podczas rozwoju.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163128-61e74ae7f1644.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-163128-61e74ae7f1644.png\" alt=\"Natywne narz\u0119dzia do debugowania WordPress, kt\u00f3re nie wymagaj\u0105 IDE\"><\/a><\/p>\n<p>Co wi\u0119cej, te problemy nie s\u0105 zwi\u0105zane z problemami stricte PHP. Obejmuj\u0105 one r\u00f3wnie\u017c problemy z JavaScriptem. Id\u0105c o krok dalej, istniej\u0105 sposoby, w jakie mo\u017cemy natywnie skonfigurowa\u0107 WordPressa, aby wy\u015bwietla\u0142 b\u0142\u0119dy bezpo\u015brednio w naszej przegl\u0105darce.<\/p>\n<p>Wi\u0119c zanim przyjrzymy si\u0119 dziennikom b\u0142\u0119d\u00f3w, IDE, Xdebug i tak dalej, przyjrzymy si\u0119, co mo\u017cemy zrobi\u0107 w samym WordPressie.<\/p>\n<h2>Natywne narz\u0119dzia do debugowania WordPress<\/h2>\n<p>Natywne narz\u0119dzia do debugowania WordPressa to po\u0142\u0105czenie dw\u00f3ch rzeczy:<\/p>\n<ol>\n<li>opcje, kt\u00f3re mo\u017cemy ustawi\u0107 w pliku konfiguracyjnym WordPressa, kt\u00f3re pozwalaj\u0105 nam zobaczy\u0107 informacje zapisywane na ekranie,<\/li>\n<li>kilka wtyczek, kt\u00f3re pomog\u0105 nam pracowa\u0107 z plikami PHP i JavaScript z obszaru administracyjnego WordPress<\/li>\n<\/ol>\n<p>W odniesieniu do drugiego punktu powy\u017cej chc\u0119 wyja\u015bni\u0107, \u017ce istnieje wiele dost\u0119pnych wtyczek do czego\u015b takiego; jednak chc\u0119, aby instalacja by\u0142a jak najcie\u0144sza, aby nie zasypywa\u0107 nas zbyt du\u017c\u0105 ilo\u015bci\u0105 informacji.<\/p>\n<p>Zamiast tego chc\u0119, aby\u015bmy mieli informacje potrzebne do przetestowania i oceny naszej pracy, ale \u017ce mamy tylko to, czego potrzebujemy. Przynajmniej na razie. By\u0107 mo\u017ce porozmawiamy o zaawansowanych tematach w przysz\u0142ych postach.<\/p>\n<p>Powiedziawszy to, zacznijmy.<\/p>\n<h3>Konfiguracja WordPress<\/h3>\n<p>Zanim zaczniesz martwi\u0107 si\u0119 konfiguracj\u0105, sam WordPress udost\u0119pnia kilka r\u00f3\u017cnych opcji, kt\u00f3re mo\u017cemy skonfigurowa\u0107 w <code>wp-config.php<\/code>pliku. S\u0105 one dobrze udokumentowane w Kodeksie, ale z do\u015bwiadczenia e-maili innych wiem, \u017ce informacje mog\u0105 by\u0107 nieco trudne do przesiewania.<\/p>\n<p>Po pierwsze, nale\u017cy zwr\u00f3ci\u0107 uwag\u0119 na nast\u0119puj\u0105ce informacje (cytowane z Kodeksu WordPress):<\/p>\n<blockquote>\n<p>[WP_DEBUG]( <a href=\"https:\/\/codex.wordpress.org\/WP_DEBUG\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/codex.wordpress.org\/WP_DEBUG<\/a> \u201eWP DEBUG&quot;) to sta\u0142a PHP (sta\u0142a zmienna globalna), kt\u00f3rej mo\u017cna u\u017cy\u0107 do uruchomienia trybu \u201edebugowania&#8221; w ca\u0142ym WordPressie. Zak\u0142ada si\u0119, \u017ce domy\u015blnie jest to warto\u015b\u0107 false i zwykle jest ustawiona na warto\u015b\u0107 true w pliku <a href=\"https:\/\/codex.wordpress.org\/Editing_wp-config.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp-config.php<\/a> w kopiach programistycznych WordPress.<\/p>\n<\/blockquote>\n<p>To zak\u0142ada, \u017ce \u200b\u200brozumiesz sta\u0142e PHP. Je\u015bli nie, zapoznaj si\u0119 z instrukcj\u0105 <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/language.constants.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a><\/strong> (to ca\u0142kiem proste). W skr\u00f3cie to:<\/p>\n<blockquote>\n<p>Sta\u0142a to identyfikator (nazwa) prostej warto\u015bci.<\/p>\n<\/blockquote>\n<p>Wi\u0119c zrobi\u0119, co w mojej mocy, aby zapewni\u0107 opcje konfiguracyjne tak bardzo, jak to mo\u017cliwe.<\/p>\n<p>Najpierw w <code>wp-config.php<\/code>pliku b\u0119dziesz chcia\u0142 zmieni\u0107 wiersz <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-09-wp-config-original-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">, kt\u00f3ry brzmi:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\ndefine( 'WP_DEBUG', false );<\/code><\/pre>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-10-wp-config-debug-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Do tego<\/a><\/strong> :<\/p>\n<pre><code>&lt;?php\ndefine( 'WP_DEBUG', true );<\/code><\/pre>\n<p>To jednak nie wszystko. Jest jeszcze kilka rzeczy do dodania, kt\u00f3re poprawi\u0105 \u015brodowisko debugowania:<\/p>\n<pre><code>&lt;?php\ndefine( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', true );\n@ini_set( 'display_errors', 1 );\ndefine( 'SCRIPT_DEBUG', true );\ndefine( 'SAVEQUERIES', true );<\/code><\/pre>\n<p>Je\u015bli pod\u0105\u017casz za tekstem Ale co oznacza ka\u017cda linijka? Oto zwi\u0119z\u0142e wyja\u015bnienie, jakie mog\u0119 teraz poda\u0107:<\/p>\n<ul>\n<li><strong>WP_DEBUG<\/strong>. Spowoduje to wy\u015bwietlenie wszelkich b\u0142\u0119d\u00f3w i ostrze\u017ce\u0144 zg\u0142oszonych przez PHP podczas uruchamiania WordPressa. Samo uruchomienie aplikacji nie powinno wykazywa\u0107 \u017cadnych problem\u00f3w; jednak uruchamianie go razem z r\u00f3\u017cnymi wtyczkami mo\u017ce by\u0107 inn\u0105 histori\u0105 w zale\u017cno\u015bci od jako\u015bci wtyczki.<\/li>\n<li><strong>WP_DEBUG_LOG<\/strong>. Jest to jedna z moich ulubionych sta\u0142ych, kt\u00f3ra szczeg\u00f3\u0142owo zapisuje wszystkie dane wyj\u015bciowe w dzienniku. Opowiem o tym w nadchodz\u0105cym po\u015bcie, ale na razie wiedz, \u017ce jest to co\u015b, co moim zdaniem zawsze powinno by\u0107 ustawione w twoim <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/instalowanie-wordpressa-dla-rozwoju-lokalnego\/\" title=\"\u015brodowisku programistycznym.\">\u015brodowisku programistycznym.<\/a><\/strong><\/li>\n<li><strong>WP_DEBUG_DISPLAY<\/strong>. To jest taki, kt\u00f3ry mo\u017cesz ustawi\u0107 na prawd\u0119 lub fa\u0142sz (chocia\u017c ja wol\u0119 prawda). Uzupe\u0142nia poprzednie ustawienie, umo\u017cliwiaj\u0105c wy\u015bwietlanie wiadomo\u015bci w przegl\u0105darce, kt\u00f3re s\u0105 r\u00f3wnie\u017c zapisywane na blogu. Nie wiem, czy uznasz to za korzystne, czy nie. Je\u015bli nie jeste\u015b przygotowany na przegl\u0105danie \u015blad\u00f3w stosu i bardziej szczeg\u00f3\u0142owych informacji, mo\u017cesz rozwa\u017cy\u0107 ustawienie tego na true.<\/li>\n<li><strong>dislay_errors.<\/strong> Kodeks wspomina, \u017ce \u200b\u200bmo\u017cesz ustawi\u0107 to na false, ale my\u015bl\u0119, \u017ce powinno to by\u0107 ustawione na true, aby umo\u017cliwi\u0107 wy\u015bwietlanie b\u0142\u0119d\u00f3w i ostrze\u017ce\u0144.<\/li>\n<li><strong>SCRIPT_DEBUG<\/strong>. Rdze\u0144 WordPressa wykorzystuje zminifikowane wersje plik\u00f3w CSS i JavaScript. Wy\u0142\u0105czenie tego ustawienia umo\u017cliwi przegl\u0105danie ca\u0142ej zawarto\u015bci plik\u00f3w w oryginalnej formie. Jest to szczeg\u00f3lnie przydatne, je\u015bli zamierzasz wsp\u00f3\u0142tworzy\u0107 Core lub pracowa\u0107 nad JavaScript zawartym w Core.<\/li>\n<li><strong>ZAPISY<\/strong>. Moim zdaniem jest to nieco bardziej zaawansowane ustawienie. Kr\u00f3tko m\u00f3wi\u0105c, wszystkie zapytania, kt\u00f3re dzia\u0142aj\u0105 w bazie danych, zostan\u0105 zapisane w tablicy PHP, kt\u00f3r\u0105 mo\u017cna p\u00f3\u017aniej przeanalizowa\u0107. To<\/li>\n<\/ul>\n<p>Skoro om\u00f3wili\u015bmy konfiguracj\u0119 WordPressa, co z wtyczkami?<\/p>\n<h3>Wtyczki do debugowania<\/h3>\n<p>Kiedy m\u00f3wi\u0119, \u017ce repozytorium jest pe\u0142ne wtyczek do tego, mam na my\u015bli to. W rzeczywisto\u015bci, je\u015bli jeste\u015b nowy w programowaniu WordPress, nie polecam szukania rzeczy do zainstalowania.<\/p>\n<p>Mo\u017ce to szybko sta\u0107 si\u0119 przyt\u0142aczaj\u0105ce, ryzykujesz, \u017ce nie zrozumiesz, co robi\u0105 niekt\u00f3re z nich, i potencjalnie poprowadzisz ci\u0119 na \u015bcie\u017ck\u0119, na kt\u00f3rej sko\u0144czysz zepsu\u0107 instalacj\u0119.<\/p>\n<p>Zamiast tego polecam przyjrze\u0107 si\u0119 nast\u0119puj\u0105cym wtyczkom (oczywi\u015bcie najpierw przeczyta\u0107 ich opis), a nast\u0119pnie przej\u015b\u0107 od tego miejsca:<\/p>\n<ol>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Pasek debugowania<\/a><\/strong>. Sama ta wtyczka dodaje menu do paska administracyjnego, kt\u00f3re pozwala zobaczy\u0107 zapytanie, pami\u0119\u0107 podr\u0119czn\u0105 i inne informacje. Wymaga to w\u0142\u0105czenia funkcji WP_DEBUG i SAVEQUERIES, jak opisano powy\u017cej.<\/li>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar-list-dependencies\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Zale\u017cno\u015bci skrypt\u00f3w i styl\u00f3w listy debugowania<\/a><\/strong>. Jest to dodatek do powy\u017cszej wtyczki, kt\u00f3ry pozwoli Ci debugowa\u0107 dalsze style JavaScript i CSS dzia\u0142aj\u0105ce w kontek\u015bcie WordPressa.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar-console\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Konsola paska debugowania<\/a>. Ta wtyczka to taka, kt\u00f3rej powiniene\u015b u\u017cywa\u0107 z wahaniem. Przynajmniej pozwala na uruchamianie PHP i MySQL z samego WordPressa. Nie polecam tej wtyczki, chyba \u017ce dobrze znasz jeden z dw\u00f3ch j\u0119zyk\u00f3w. Mimo to, je\u015bli tak, jest to co\u015b, co mo\u017ce by\u0107 przydatne do tworzenia prototyp\u00f3w funkcji lub zapytania przed wbudowaniem ich we wtyczk\u0119.<\/li>\n<\/ol>\n<h2>Badanie dziennik\u00f3w b\u0142\u0119d\u00f3w<\/h2>\n<p>W nast\u0119pnym po\u015bcie zaczniemy zastanawia\u0107 si\u0119, co jest konieczne, aby sprawdzi\u0107 dziennik b\u0142\u0119d\u00f3w generowany przez WordPress i jak zrozumie\u0107 wy\u015bwietlane informacje.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163128-61e74aee547cd.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-163128-61e74aee547cd.png\" alt=\"Natywne narz\u0119dzia do debugowania WordPress, kt\u00f3re nie wymagaj\u0105 IDE\"><\/a><\/p>\n<p>Ponadto przyjrzymy si\u0119, co jest konieczne do korzystania z wtyczek opisanych w tym po\u015bcie. Nast\u0119pnie przejdziemy do jeszcze bardziej zaawansowanych narz\u0119dzi.<\/p>\n<p>Ale krok po kroku, prawda?<\/p>\n<p>Na razie jednak skonfiguruj swoj\u0105 instalacj\u0119 zgodnie z powy\u017cszym opisem, zainstaluj po\u0142\u0105czone wtyczki, a nast\u0119pnie zr\u00f3b, co mo\u017cesz, aby zbada\u0107, jak dzia\u0142aj\u0105, co mo\u017cesz zobaczy\u0107 na ekranie i jak mo\u017ce to wp\u0142yn\u0105\u0107 i pozytywnie wp\u0142yn\u0105\u0107 na Tw\u00f3j rozw\u00f3j.<\/p>\n<p>Tak, mo\u017ce by\u0107 troch\u0119 krzywej uczenia si\u0119. Ale w\u0142a\u015bnie dlatego robimy to powoli. Jest wiele do nauczenia si\u0119, a my mamy mn\u00f3stwo czasu, aby ogarn\u0105\u0107 wszystko, co jest potrzebne.<\/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>Zanim przyjrzymy si\u0119 dziennikom b\u0142\u0119d\u00f3w, IDE, Xdebug itd., przyjrzymy si\u0119, co mo\u017cemy zrobi\u0107 za pomoc\u0105 natywnych narz\u0119dzi do debugowania WordPressa.<\/p>\n","protected":false},"author":1,"featured_media":163129,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,866],"tags":[1169],"class_list":["post-230073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230073","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=230073"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/163129"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=230073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=230073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=230073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}