{"id":230911,"date":"2022-12-23T12:17:00","date_gmt":"2022-12-23T09:17:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230911"},"modified":"2022-12-07T10:53:38","modified_gmt":"2022-12-07T07:53:38","slug":"pisanie-lepszego-kodu-wordpress-wprowadzenie","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/pisanie-lepszego-kodu-wordpress-wprowadzenie\/","title":{"rendered":"Pisanie lepszego kodu WordPress: Wprowadzenie"},"content":{"rendered":"\n<p>W ci\u0105gu ostatnich kilku lat du\u017co m\u00f3wi\u0142em o naturze jako\u015bci kodu oraz r\u00f3\u017cnych narz\u0119dziach, procesach i bibliotekach, z kt\u00f3rych polecam korzysta\u0107 przy pisaniu kodu dla WordPressa.<\/p>\n<p>Jestem r\u00f3wnie\u017c otwarty, \u017ce wi\u0119kszo\u015b\u0107 pracy, kt\u00f3r\u0105 wykonuj\u0119, to backend development. Oznacza to, \u017ce pracuj\u0119 g\u0142\u00f3wnie nad wtyczkami do WordPressa, korzystaj\u0105c z programowania obiektowego i nie pracuj\u0119 zbyt wiele z szablonami ani z technologiami front-end.<\/p>\n<p>To z wyboru i jestem naprawd\u0119 zadowolony z tego, gdzie jestem. Ale robi\u0119 dygresj\u0119.<\/p>\n<p>Je\u015bli zajmujesz si\u0119 robieniem tego samego (lub robisz to jako hobby), nie chodzi tylko o pisanie kodu. Chodzi o posiadanie odpowiedniego oprzyrz\u0105dowania.<\/p>\n<p>Nawi\u0105za\u0142em do kilku z nich w poprzednich postach, ale nie zapozna\u0142em si\u0119 z narz\u0119dziami, kt\u00f3rych u\u017cywam, i konfiguracj\u0105, kt\u00f3rej u\u017cywam, gdy tworz\u0119 rozwi\u0105zanie dla siebie lub kogo\u015b innego.<\/p>\n<p>Przynajmniej nie w zorganizowany spos\u00f3b.<\/p>\n<p>W tej serii zamierzam zrobi\u0107 dok\u0142adnie to:<\/p>\n<p>Zamierzam om\u00f3wi\u0107 narz\u0119dzia, kt\u00f3rych u\u017cywam, biblioteki, kt\u00f3rych u\u017cywam, i spos\u00f3b ich u\u017cywania.<\/p>\n<p>Ostatecznie celem jest, aby ci z was, kt\u00f3rzy to czytaj\u0105, mogli w\u0142\u0105czy\u0107 je do swojej codziennej pracy, aby pisa\u0107 lepszy kod.<\/p>\n<h2>Lepszy kod WordPress<\/h2>\n<p>Zanim przejdziemy dalej, najpierw podam zastrze\u017cenie:<\/p>\n<p>Poprzednia seria, kt\u00f3r\u0105 zrobi\u0142em do tej pory, by\u0142a d\u0142uga. Ta seria nie b\u0119dzie. Przez jaki\u015b czas skupi\u0119 si\u0119 na kr\u00f3tszych, bardziej skupionych seriach i postach.<\/p>\n<p>Powiedzia\u0142em ju\u017c, \u017ce ta seria zak\u0142ada, \u017ce \u200b\u200bznasz swoje IDE i pobie\u017cnie znasz <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>. Dla mnie u\u017cywam Visual Studio Code (i om\u00f3wi\u0142em to <a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ca\u0142kiem sporo<\/a> ).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6475f0f.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-160420-61e70a6475f0f.png\" alt=\"Pisanie lepszego kodu WordPress: Wprowadzenie\" ><\/a><\/p>\n<p>Zamierzam przej\u015b\u0107 przez ca\u0142y proces od samego pocz\u0105tku a\u017c do momentu, w kt\u00f3rym wtyczka jest gotowa do uruchomienia. Nie, to nie znaczy, \u017ce piszemy wtyczk\u0119. Ale p\u00f3jdziemy a\u017c do kraw\u0119dzi.<\/p>\n<p>Powiedziawszy to, zacznijmy.<\/p>\n<h3>Instalowanie Kompozytora<\/h3>\n<p>Dla tych, kt\u00f3rzy czytaj\u0105 tego bloga od d\u0142u\u017cszego czasu, wiecie, \u017ce om\u00f3wi\u0142em to ju\u017c wcze\u015bniej; jednak nigdy nie chc\u0119 zak\u0142ada\u0107 czego\u015b takiego, je\u015bli chodzi o tych, kt\u00f3rzy niedawno do\u0142\u0105czyli lub czytaj\u0105 o tym po raz pierwszy.<\/p>\n<p>Je\u015bli jeste\u015b ju\u017c skonfigurowany, mo\u017cesz go pomin\u0105\u0107; w przeciwnym razie przejd\u017amy dalej.<\/p>\n<h4>Co oznacza instalacja globalna?<\/h4>\n<p>Zainstalowanie aplikacji na ca\u0142ym \u015bwiecie oznacza, \u017ce \u200b\u200bjest ona dost\u0119pna w ca\u0142ym systemie. Oznacza to, \u017ce nie ma znaczenia, czy jeste\u015b w katalogu Dokumenty, czy w katalogu projektu, mo\u017cesz uzyska\u0107 dost\u0119p do narz\u0119dzia za pomoc\u0105 wiersza polece\u0144.<\/p>\n<p>I oczywi\u015bcie, mo\u017cemy u\u017cywa\u0107 Composera na podstawie projektu (i zalecam to), ale s\u0105 chwile, w kt\u00f3rych wa\u017cne jest, aby zainstalowa\u0107 Composer r\u00f3wnie\u017c w \u015brodowisku globalnym.<\/p>\n<p>I to w\u0142a\u015bnie zamierzamy tutaj zrobi\u0107.<\/p>\n<h3>Dwa sposoby instalacji Composera<\/h3>\n<h4>Korzystanie z Homebrew<\/h4>\n<p>Je\u015bli u\u017cywasz <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew<\/a>, mo\u017cesz zainstalowa\u0107 Composer za pomoc\u0105 Homebrew. Instalacja i aktualizacja jest prawdopodobnie \u0142atwiejsza.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a682be91.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-160420-61e70a682be91.png\" alt=\"Pisanie lepszego kodu WordPress: Wprowadzenie\" ><\/a><\/p>\n<p>Oczywi\u015bcie zak\u0142ada to, \u017ce masz zainstalowany Homebrew. Je\u015bli nie jeste\u015b zainteresowany, wpisz <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-00-install-homebrew-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">to polecenie<\/a> :<\/p>\n<pre><code>$ \/usr\/bin\/ruby -e \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)\"<\/code><\/pre>\n<p>Pami\u0119taj jednak, \u017ce je\u015bli zdecydujesz si\u0119 na t\u0119 tras\u0119, b\u0119dzie kilka rzeczy, z kt\u00f3rymi musisz si\u0119 zapozna\u0107 w Homebrew. I cho\u0107 jestem fanem, tak naprawd\u0119 nie jest to cz\u0119\u015b\u0107 tego postu. Szczeg\u00f3\u0142owo om\u00f3wi\u0142em to <a href=\"https:\/\/tommcfarlin.com\/?s=homebrew\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">w innych postach<\/a> (i zawsze mo\u017cesz przeczyta\u0107 <a href=\"https:\/\/docs.brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentacj\u0119<\/a> ).<\/p>\n<p>Nast\u0119pnie mo\u017cesz zainstalowa\u0107 Composer za pomoc\u0105 Homebrew, wpisuj\u0105c <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-01-brew-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nast\u0119puj\u0105ce polecenie<\/a> :<\/p>\n<p>Naprawd\u0119 nie, prawda?<\/p>\n<h4>R\u0119czna instalacja Composera<\/h4>\n<p>Innym sposobem zainstalowania Composera jest pobranie tego pliku, a nast\u0119pnie umieszczenie go w globalnej \u015bcie\u017cce.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6bcc142.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-160420-61e70a6bcc142.png\" alt=\"Pisanie lepszego kodu WordPress: Wprowadzenie\" ><\/a><\/p>\n<p>Oznacza to, \u017ce po pobraniu <a href=\"https:\/\/getcomposer.org\/composer.phar\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tego pliku<\/a> (zauwa\u017c, \u017ce link jest rzeczywistym pobraniem, wi\u0119c zwr\u00f3\u0107 uwag\u0119 na to, gdzie go umie\u015bcisz!), mo\u017cesz wykona\u0107 <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-02-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">to polecenie<\/a> z poziomu terminala:<\/p>\n<pre><code>$ mv composer.phar \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>A to przeniesie Composer na twoj\u0105 globaln\u0105 \u015bcie\u017ck\u0119.<\/p>\n<h2>Sprawd\u017a instalacj\u0119 kompozytora<\/h2>\n<p>Po wykonaniu jednego z powy\u017cszych krok\u00f3w powiniene\u015b by\u0107 w stanie przetestowa\u0107 wersj\u0119 Composera, uruchamiaj\u0105c w terminalu <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-03-composer-v-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nast\u0119puj\u0105ce polecenie :<\/a><\/p>\n<p>Powiniene\u015b zobaczy\u0107 co\u015b takiego:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6e69b61.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-160420-61e70a6e69b61.png\" alt=\"Pisanie lepszego kodu WordPress: Wprowadzenie\" ><\/a><\/p>\n<p>Je\u015bli tego nie zrobisz, sprawd\u017a dok\u0142adnie powy\u017csze kroki.<\/p>\n<h2>Przejd\u017a do narz\u0119dzi<\/h2>\n<p>Jednym z pyta\u0144, kt\u00f3re czasami pojawiaj\u0105 si\u0119 w zwi\u0105zku z kompozytorem, jest dlaczego? I cho\u0107 m\u00f3g\u0142bym odpowiedzie\u0107 na to w tym po\u015bcie, pami\u0119taj, \u017ce pracuj\u0119 nad tym, aby te i te serie by\u0142y nieco bardziej zwi\u0119z\u0142e ni\u017c poprzednie.<\/p>\n<p>Postaram si\u0119 odpowiedzie\u0107 na to w skr\u00f3cie w nast\u0119pnym po\u015bcie, a tak\u017ce om\u00f3wi\u0107, jak rozpocz\u0105\u0107 prac\u0119 z kilkoma narz\u0119dziami, po czym zaczniemy sprawdza\u0107, jak mo\u017ce odgrywa\u0107 wi\u0119ksz\u0105 rol\u0119 w tworzeniu wtyczek do WordPressa.<\/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>Ta seria obejmie narz\u0119dzia i biblioteki, kt\u00f3rych u\u017cywam do pisania lepszego kodu WordPress.<\/p>\n","protected":false},"author":1,"featured_media":236179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,805,845,866],"tags":[1169],"class_list":["post-230911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-php-7","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230911","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=230911"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/236179"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=230911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=230911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=230911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}