{"id":230569,"date":"2022-12-15T14:34:00","date_gmt":"2022-12-15T11:34:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230569"},"modified":"2022-12-15T14:39:49","modified_gmt":"2022-12-15T11:39:49","slug":"widzety-wordpress-refaktoryzacja-czesc-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/widzety-wordpress-refaktoryzacja-czesc-1\/","title":{"rendered":"Wid\u017cety WordPress: Refaktoryzacja, cz\u0119\u015b\u0107 1"},"content":{"rendered":"\n<p><strong><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/widzety-wordpress-zaczynajac-od-standardow\/\" title=\"Ostatni post\">Ostatni post<\/a><\/strong> zawiera\u0142 wiele informacji na temat konfigurowania narz\u0119dzi jako\u015bci kodu w <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/wordpress-development-environment\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u015brodowisku programistycznym WordPress<\/a><\/strong>, ale s\u0105 one niezb\u0119dne, je\u015bli zamierzamy robi\u0107 du\u017co refaktoryzacji.<\/p>\n<blockquote>\n<p>Ale jak wspomnia\u0142em na pocz\u0105tku tego postu, najpierw stworzenie narz\u0119dzi jako\u015bci kodu zapewnia nam podstaw\u0119, kt\u00f3rej mo\u017cemy u\u017cy\u0107, gdy dokonamy refaktoryzacji boilerplate&#8217;u (co oczywi\u015bcie musimy zrobi\u0107, bior\u0105c pod uwag\u0119 ilo\u015b\u0107 czerwieni pokazan\u0105 przez GrumPHP).<\/p>\n<\/blockquote>\n<p>Szczerze m\u00f3wi\u0105c, uwa\u017cam je za konieczne, je\u015bli zamierzasz robi\u0107 jakikolwiek rodzaj rozwoju, st\u0105d potrzeba pokazania, jak je skonfigurowa\u0107.<\/p>\n<p>Niezale\u017cnie od tego, poprzedni post pokazuje, ile pracy dla nas wyci\u0119li\u015bmy, prawda?<\/p>\n<p>Teraz zaczniemy od refaktoryzacji <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Widget Boilerplate<\/a><\/strong>.<\/p>\n<p>To nie tylko poprawi jako\u015b\u0107 kodu, ale tak\u017ce przeprowadzi nas przez niekt\u00f3re zasady zorientowane obiektowo, kt\u00f3re mo\u017cemy zastosowa\u0107 podczas tworzenia naszych wid\u017cet\u00f3w i mo\u017cemy zastosowa\u0107 w przysz\u0142ych wysi\u0142kach programistycznych WordPress.<\/p>\n<h2>WordPress Widget Boilerplate: Refaktoryzacja, cz\u0119\u015b\u0107 1<\/h2>\n<p>By\u0107 mo\u017ce najbardziej ekscytuj\u0105c\u0105 rzecz\u0105 jest dla mnie dostosowanie tego repozytorium do wsp\u00f3\u0142czesnych standard\u00f3w. Je\u015bli spojrzysz na <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">g\u0142\u00f3wn\u0105 ga\u0142\u0105\u017a w GitHubie<\/a><\/strong> w czasie tego posta (lub histori\u0119 repozytorium p\u00f3\u017aniej), zobaczysz, \u017ce ma sze\u015b\u0107 lat.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d06f9bc.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-161542-61e724d06f9bc.png\" alt=\"Wid\u017cety WordPress: Refaktoryzacja, cz\u0119\u015b\u0107 1\"><\/a><\/p>\n<p>Ta rzecz ma sze\u015b\u0107 lat (w momencie pisania tego posta).<\/p>\n<p>To d\u0142ugi czas w internetowych latach, prawda?<\/p>\n<p>W ka\u017cdym razie w naszych wysi\u0142kach refaktoryzacji zamierzamy zrobi\u0107 kilka rzeczy:<\/p>\n<ul>\n<li>utworzenie ga\u0142\u0119zi, z kt\u00f3rej b\u0119dzie mo\u017cna pracowa\u0107 przed ponownym po\u0142\u0105czeniem jej z ga\u0142\u0119zi\u0105 g\u0142\u00f3wn\u0105,<\/li>\n<li>wdro\u017cenie bardziej sp\u00f3jnego sposobu organizowania plik\u00f3w,<\/li>\n<li>aktualizacja standard\u00f3w kodowania pod k\u0105tem tego, co jest bardziej zgodne z PSR,<\/li>\n<li>i wi\u0119cej.<\/li>\n<\/ul>\n<p>Przedstawiam to teraz, poniewa\u017c prawdopodobnie nie om\u00f3wimy tego wszystkiego w tym po\u015bcie, ale om\u00f3wimy du\u017co tematu. Powiedziawszy to, zacznijmy.<\/p>\n<h3>1 Tworzenie Oddzia\u0142u Deweloperskiego<\/h3>\n<p>Zak\u0142adaj\u0105c, \u017ce masz kopi\u0119 repozytorium na swoim lokalnym komputerze, kt\u00f3r\u0105 powiniene\u015b mie\u0107 po ostatnim po\u015bcie, pierwsz\u0105 rzecz\u0105, kt\u00f3r\u0105 musimy zrobi\u0107, to utworzy\u0107 ga\u0142\u0105\u017a, na kt\u00f3rej b\u0119dziemy wykonywa\u0107 nasz\u0105 prac\u0119.<\/p>\n<p>Najlepsz\u0105 praktyk\u0105 jest nie pracowa\u0107 na ga\u0142\u0119zi master. Zamiast tego nale\u017cy zawsze u\u017cywa\u0107 wzorca do wdra\u017cania najnowszej stabilnej wersji kodu.<\/p>\n<p>W tym celu wpisz w terminalu nast\u0119puj\u0105ce polecenie:<\/p>\n<pre><code>$ git checkout -b develop<\/code><\/pre>\n<p>Spowoduje to utworzenie nowego oddzia\u0142u lokalnego. Nie zosta\u0142 jeszcze przekazany do GitHub lub zdalnego repozytorium (gdziekolwiek go przechowujesz).<\/p>\n<p>Nast\u0119pnie wprowad\u017a nast\u0119puj\u0105ce polecenie:<\/p>\n<pre><code>$ git push --set-upstream origin develop<\/code><\/pre>\n<p>Spowoduje to wypchni\u0119cie ga\u0142\u0119zi deweloperskiej do zdalnego repozytorium. Gdy to zrobisz, powiniene\u015b by\u0107 w stanie zobaczy\u0107 wszystkie zmiany, kt\u00f3re wprowadzili\u015bmy w ostatnim po\u015bcie w twoim zdalnym repozytorium.<\/p>\n<p>Je\u015bli u\u017cywasz GitHub, powinno to wygl\u0105da\u0107 mniej wi\u0119cej tak:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d38c4f4.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-161542-61e724d38c4f4.png\" alt=\"Wid\u017cety WordPress: Refaktoryzacja, cz\u0119\u015b\u0107 1\"><\/a><\/p>\n<p>Je\u015bli korzystasz z innej us\u0142ugi, nadal powinna wygl\u0105da\u0107 podobnie. Oznacza to, \u017ce struktura katalog\u00f3w powinna by\u0107 taka sama, ale wygl\u0105d w przegl\u0105darce b\u0119dzie si\u0119 r\u00f3\u017cni\u0107.<\/p>\n<h4>Uwaga o oddziale<\/h4>\n<p>Pami\u0119taj, \u017ce celem tej ga\u0142\u0119zi jest wykonanie ca\u0142ej naszej pracy. W ten spos\u00f3b nie ingerujemy w ga\u0142\u0105\u017a master, z kt\u00f3rej wiele os\u00f3b b\u0119dzie ci\u0105gn\u0105\u0107.<\/p>\n<p>\u017beby by\u0142o jasne, mo\u017ce nikt z tego nie wyci\u0105gnie. Mo\u017ce to zrobi\u0105. Niezale\u017cnie od tego, przedstawione tutaj praktyki maj\u0105 na celu pokazanie, jak uruchomi\u0107 projekt przy u\u017cyciu narz\u0119dzi kontroli \u017ar\u00f3d\u0142a i jako\u015bci kodu, dzi\u0119ki czemu mo\u017cesz tworzy\u0107 lepsze projekty dla siebie, swojej firmy i nie tylko.<\/p>\n<h3>2 Reorganizacja plik\u00f3w<\/h3>\n<p>Pierwsz\u0105 rzecz\u0105, kt\u00f3r\u0105 powinni\u015bmy zrobi\u0107, to zreorganizowa\u0107 pliki, tak aby na\u015bladowa\u0142y bardziej nowoczesn\u0105 struktur\u0119. Zrobi\u0119 co w mojej mocy, aby uzasadni\u0107 decyzje, kt\u00f3re podejmuj\u0119 dla projektu, kiedy to robimy; jednak mo\u017cesz swobodnie wybra\u0107 spos\u00f3b, w jaki chcesz to zrobi\u0107.<\/p>\n<p>Decyzje, kt\u00f3re podejm\u0119, ostatecznie wp\u0142yn\u0105 na podstawowy Boilerplate. To, co zdecydujesz si\u0119 zrobi\u0107, wp\u0142ynie na to, jak mo\u017cesz z niego korzysta\u0107 w swojej codziennej pracy lub jak zdecydujesz si\u0119 kontynuowa\u0107 projekt jako ca\u0142o\u015b\u0107.<\/p>\n<h3>Aktualizowanie katalog\u00f3w<\/h3>\n<p>Jedn\u0105 z rzeczy, kt\u00f3re staram si\u0119 zrobi\u0107, jest rozbicie moich katalog\u00f3w, aby by\u0142y jak najbardziej przejrzyste. Oznacza to, \u017ce staram si\u0119 wykona\u0107 nast\u0119puj\u0105ce czynno\u015bci:<\/p>\n<ul>\n<li>stworzy\u0107 katalog <strong>asset\u00f3w<\/strong> dla JavaScript i arkuszy styl\u00f3w,<\/li>\n<li>utw\u00f3rz katalog <strong>src<\/strong> dla wszystkich plik\u00f3w PHP,<\/li>\n<li>utworzy\u0107 katalog <strong>j\u0119zykowy<\/strong> dla plik\u00f3w internacjonalizacji,<\/li>\n<li>zachowaj wszystkie inne pliki w katalogu g\u0142\u00f3wnym repozytorium, aby inni mogli \u0142atwo \u015bledzi\u0107 wraz z dostarczonym README.<\/li>\n<\/ul>\n<p>Aby to zrobi\u0107, najpierw usun\u0119 i przenios\u0119 kilka rzeczy. Pr\u00f3bowa\u0142em to uporz\u0105dkowa\u0107 w okre\u015blonej kolejno\u015bci:<\/p>\n<ol>\n<li>Zamierzam usun\u0105\u0107 plik <strong>README.txt<\/strong>. Ten plik jest u\u017cywany jako standardowy szablon README, je\u015bli zamierzasz przes\u0142a\u0107 kod do repozytorium wtyczek WordPress, ale nie jest to konieczne do tego, co chc\u0119 dla Boilerplate.<\/li>\n<li>Zmieni\u0119 nazw\u0119 <strong>plugin.php<\/strong> na <strong>Plugin<em><\/em><\/strong> .php<em><\/em> zgodnie z konwencj\u0105 PSR.<\/li>\n<li>Zmieni\u0119 te\u017c nazw\u0119 <strong>lang<\/strong> na <strong>j\u0119zyki.<\/strong><\/li>\n<li>Zamierzam utworzy\u0107 katalog <strong>asset<\/strong> i przenie\u015b\u0107, a nast\u0119pnie przenie\u015b\u0107 katalogi <strong>css<\/strong> i <strong>js<\/strong> do tego katalogu. W ka\u017cdym z tych katalog\u00f3w stworz\u0119 podkatalog <strong>dev<\/strong>, w kt\u00f3rym b\u0119dziemy mogli pracowa\u0107 na Sassie i niezminifikowanych plikach JavaScript (oba pojawi\u0105 si\u0119 w dalszej cz\u0119\u015bci serii).<\/li>\n<li>Nast\u0119pnie stworz\u0119 katalog <strong>src<\/strong> i przenios\u0119 arkusz styl\u00f3w <strong>views do tego katalogu.<\/strong><\/li>\n<li>Zmieni\u0119 r\u00f3wnie\u017c nazw\u0119 <strong>widok\u00f3w<\/strong> na <strong>Widoki<\/strong> i b\u0119d\u0119 pisa\u0107 wielkie litery w plikach w nich zawartych.<\/li>\n<li>Na koniec przenios\u0119 wszystko do katalogu g\u0142\u00f3wnego. Oznacza to, \u017ce <strong>widget-boilerplate<\/strong> zniknie, a wszystkie pliki pozostan\u0105 w katalogu g\u0142\u00f3wnym repozytorium.<\/li>\n<\/ol>\n<p>To du\u017co krok\u00f3w, ale s\u0105 one ma\u0142e. Lubi\u0119 uk\u0142ada\u0107 je najpierw, aby by\u0142o jasne, co si\u0119 stanie w pozosta\u0142ej cz\u0119\u015bci tej sekcji.<\/p>\n<h4>Usu\u0144 plik README<\/h4>\n<p>Aby to zrobi\u0107, po prostu wpisz w terminalu nast\u0119puj\u0105ce polecenie z katalogu g\u0142\u00f3wnego <strong>widget-boilerplate<\/strong> :<\/p>\n<pre><code>$ rm readme.txt<\/code><\/pre>\n<p>Spowoduje to usuni\u0119cie pliku. Je\u015bli wpiszesz w terminalu nast\u0119puj\u0105ce polecenie:<\/p>\n<pre><code>$ git status<\/code><\/pre>\n<p>Powiniene\u015b zobaczy\u0107 co\u015b takiego:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d77468a.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-161542-61e724d77468a.png\" alt=\"Wid\u017cety WordPress: Refaktoryzacja, cz\u0119\u015b\u0107 1\"><\/a><\/p>\n<p>Jestem fanem upewniania si\u0119, \u017ce r\u00f3\u017cne zmiany, kt\u00f3re s\u0105 wprowadzane, s\u0105 jasne i zwi\u0119z\u0142e, aby \u0142atwiej by\u0142o je cofa\u0107 pojedynczo. Wi\u0119c chod\u017amy dalej, zatwierd\u017amy i popchnijmy t\u0119 zmian\u0119.<\/p>\n<p>Wpisz nast\u0119puj\u0105ce informacje:<\/p>\n<pre><code>$ git rm README.txt\n$ git add. $ git commit -n -m \"Removing the original README.txt template.\"\n$ git push<\/code><\/pre>\n<p>To powie Gitowi, aby usun\u0105\u0142 plik, doda\u0142 pojedyncz\u0105 zmian\u0119 do zbioru zmian, zatwierdzi\u0142 go bez uruchamiania narz\u0119dzi jako\u015bci kodu (poniewa\u017c nie musimy tego teraz robi\u0107; w przeciwnym razie to si\u0119 nie powiedzie) i wypchnie go do ga\u0142\u0119zi deweloperskiej zdalnego repozytorium<strong>.<\/strong><\/p>\n<p>Teraz, gdy ju\u017c to zrobili\u015bmy, zmie\u0144my nazwy niekt\u00f3rych plik\u00f3w.<\/p>\n<h4>Zmiana nazw plik\u00f3w<\/h4>\n<p>Skoro ju\u017c przy tym jeste\u015bmy, nie tylko zmienimy nazw\u0119 pliku <strong>plugin<em><\/em><\/strong> .php<em><\/em>, ale tak\u017ce innych plik\u00f3w PHP. S\u0105 to pliki, kt\u00f3re mo\u017cna logicznie pogrupowa\u0107 w tym samym zestawie zmian, wi\u0119c warto to zrobi\u0107.<\/p>\n<p>Wi\u0119c ze swojego terminala wprowad\u017a nast\u0119puj\u0105ce polecenia:<\/p>\n<pre><code>$ mv plugin.php Plugin.php\n$ mv views\/admin.php views\/Admin.php\n$ mv views\/widget.php views\/Widget.php<\/code><\/pre>\n<p>Robi\u0105c to, nie wprowadzili\u015bmy jeszcze \u017cadnych zmian w plikach, wi\u0119c nie ma nic do zatwierdzenia. Przejd\u017amy dalej ze zmienianiem nazw katalog\u00f3w.<\/p>\n<h4>Utw\u00f3rz katalogi; Zmie\u0144 nazw\u0119 katalog\u00f3w<\/h4>\n<p>Tak jak zrobili\u015bmy z plikami, stw\u00f3rzmy nowy katalog <strong>zasob\u00f3w .<\/strong> W swoim terminalu wpisz nast\u0119puj\u0105ce polecenie:<\/p>\n<pre><code>$ mkdir assets<\/code><\/pre>\n<p>Nast\u0119pnie chcemy przenie\u015b\u0107 katalogi <strong>css<\/strong> i <strong>js<\/strong> do tego katalogu, wi\u0119c wprowad\u017a r\u00f3wnie\u017c w terminalu:<\/p>\n<pre><code>$ mv css assets\n$ mv js assets<\/code><\/pre>\n<p>I zmie\u0144my nazw\u0119 katalogu <strong>lang<\/strong> na <strong>J\u0119zyki<\/strong>, wpisuj\u0105c nast\u0119puj\u0105ce polecenie:<\/p>\n<pre><code>$ mv lang Languages<\/code><\/pre>\n<p>Na koniec zmie\u0144my nazw\u0119 <strong>widoku<\/strong> na <strong>Widoki:<\/strong><\/p>\n<pre><code>$ mv views Views<\/code><\/pre>\n<p>W tym momencie zrobili\u015bmy wszystko, co w naszej mocy, z plikami znajduj\u0105cymi si\u0119 obecnie w g\u0142\u00f3wnym katalogu. Jednak nadal musimy przygotowa\u0107 podkatalogi dla naszych wst\u0119pnie przetworzonych zasob\u00f3w.<\/p>\n<p>Jednak zanim to zrobisz, dobrym nawykiem jest szybkie sprawdzenie <strong>statusu git,<\/strong> aby zobaczy\u0107, co istnieje, co mo\u017cna doda\u0107 do zestawu zmian. Je\u015bli twoje repozytorium jest podobne do mojego, prawdopodobnie zobaczysz co\u015b takiego:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724da758f2.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-161542-61e724da758f2.png\" alt=\"Wid\u017cety WordPress: Refaktoryzacja, cz\u0119\u015b\u0107 1\"><\/a><\/p>\n<p>W tym przypadku my\u015bl\u0119, \u017ce mo\u017cna doda\u0107 wszystko do jednego zestawu zmian z komentarzem wskazuj\u0105cym, \u017ce zmienili\u015bmy nazwy i przenie\u015bli\u015bmy pliki.<\/p>\n<p>Mo\u017cesz si\u0119 r\u00f3\u017cni\u0107, a je\u015bli tak, to w porz\u0105dku. Twoje polecenia b\u0119d\u0105 si\u0119 nieco r\u00f3\u017cni\u0107 od moich, ale oto, co mam do mojego zatwierdzenia:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Creating new directories; Renaming files.\"\n$ git push<\/code><\/pre>\n<p>Teraz przejd\u017amy do podkatalog\u00f3w dla naszych wst\u0119pnie przetworzonych plik\u00f3w.<\/p>\n<h4>Utw\u00f3rz podkatalogi<\/h4>\n<p>W katalogu CSS utw\u00f3rz podkatalog o nazwie <strong>dev<\/strong> i utw\u00f3rz pusty plik o <strong>nazwach admin.scss<\/strong> i <strong>widget.scss<\/strong>, poniewa\u017c b\u0119dziemy pracowa\u0107 z tymi plikami w dalszej cz\u0119\u015bci serii.<\/p>\n<p>Nast\u0119pnie dodaj katalog <strong>dev<\/strong> do katalogu JavaScript i dodaj do tych plik\u00f3w pusty plik admin.js oraz <strong>pliki<\/strong> <strong>widget.js<\/strong>. Je\u015bli masz tak\u0105 ochot\u0119, mo\u017cesz przenie\u015b\u0107 istniej\u0105ce wcze\u015bniej pliki do <strong>katalog\u00f3w<\/strong> deweloperskich, poniewa\u017c s\u0105 to pliki, kt\u00f3rych b\u0119dziemy u\u017cywa\u0107 jako podstawy dla naszych plik\u00f3w deweloperskich.<\/p>\n<p>To opcjonalny krok; jednak poszed\u0142em dalej i zrobi\u0142em to, poniewa\u017c tak wol\u0119 pracowa\u0107. Oto zestaw polece\u0144, kt\u00f3re uruchomi\u0142em.<\/p>\n<p>Z katalogu <strong>css<\/strong> \u2026<\/p>\n<pre><code>$ mkdir dev\n$ mv admin.css admin.scss &amp;&amp; mv widget.css widget.scss\n$ mv *.scss dev<\/code><\/pre>\n<p>Powy\u017cej stworzy\u0142em katalog <strong>dev<\/strong> dla moich arkuszy styl\u00f3w, zmieni\u0142em ich nazwy na pliki Sass i przenios\u0142em je do katalogu <strong>dev<\/strong>.<\/p>\n<p>Zanim przejdziemy dalej, teraz jest dobry moment na sprawdzenie <strong>statusu git<\/strong> i zatwierdzenie zmian zwi\u0105zanych z arkuszami styl\u00f3w:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Renaming and moving stylesheets into a dev directory.\"\n$ git push<\/code><\/pre>\n<p>Teraz z katalogu <strong>js<\/strong> \u2026<\/p>\n<pre><code>$ mkdir dev\n$ mv *.js dev<\/code><\/pre>\n<p>Poniewa\u017c nie musimy zmienia\u0107 typu skojarzonych plik\u00f3w, mo\u017cemy po prostu przenie\u015b\u0107 je do nowego katalogu.<\/p>\n<p>Na koniec zr\u00f3bmy to samo i zobaczmy, czy s\u0105 jakie\u015b zmiany, kt\u00f3re mo\u017cemy wprowadzi\u0107 poprzez szybkie sprawdzenie <strong>statusu git<\/strong> (co powinno by\u0107). Oto lista polece\u0144, kt\u00f3re uruchomi\u0142em, aby zatwierdzi\u0107 i przekaza\u0107 moje zmiany:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Adding a JavaScript dev directory and moving the development files.\"\n$ git push<\/code><\/pre>\n<p>Prawie sko\u0144czyli\u015bmy. Pozosta\u0142o tylko przenie\u015b\u0107 okre\u015blone katalogi do katalogu g\u0142\u00f3wnego repozytorium i zmieni\u0107 nazw\u0119 g\u0142\u00f3wnego katalogu na <strong>src<\/strong>. Wi\u0119c zr\u00f3bmy to teraz.<\/p>\n<h3>Przenie\u015b katalogi do katalogu g\u0142\u00f3wnego<\/h3>\n<p>Zasadniczo musimy przenie\u015b\u0107 wszystko opr\u00f3cz pliku wtyczki i katalogu <strong>Views<\/strong> z katalogu <strong>widget-boilerplate<\/strong> i zmieni\u0107 nazw\u0119 <strong>widget-boilerplate<\/strong> na <strong>src<\/strong>.<\/p>\n<p>Brzmi prosto, prawda? To ca\u0142kiem proste. Z katalogu <strong>widget-boilerplate<\/strong> :<\/p>\n<pre><code>$ mv assets .. &amp;&amp; mv languages ..\n$ cd ..\n$ mv widget-boilerplate src<\/code><\/pre>\n<p>Nast\u0119pnie zatwierdz\u0119 zmian\u0119 na GitHubie, u\u017cywaj\u0105c:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Reorganizing the directory structure.\"\n$ git push<\/code><\/pre>\n<p>Teraz mamy skonfigurowan\u0105 znacznie bardziej nowoczesn\u0105 struktur\u0119 katalog\u00f3w. Mo\u017cesz to zobaczy\u0107 tutaj <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\/tree\/develop\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">w mojej ga\u0142\u0119zi programistycznej<\/a><\/strong>.<\/p>\n<h3>S\u0142owo o OOP<\/h3>\n<p>A teraz, gdy mamy to wszystko na miejscu, mo\u017cemy zaj\u0105\u0107 si\u0119 pisaniem kodu. Ale nie mylcie si\u0119: cz\u0119\u015bci\u0105 programowania obiektowego jest r\u00f3wnie\u017c analiza obiektowa i projektowanie zorientowane obiektowo.<\/p>\n<p>To, co zrobili\u015bmy w tym po\u015bcie, to zasadniczo zastosowanie projektu architektonicznego zorientowanego obiektowo, opartego na analizie dopasowania wtyczki.<\/p>\n<p>Jednak nast\u0119pn\u0105 cz\u0119\u015bci\u0105 jest aktualizacja kodu, aby pozby\u0107 si\u0119 ca\u0142ej czerwieni, kt\u00f3r\u0105 widzieli\u015bmy podczas sniffowania naszego kodu.<\/p>\n<h2>W nast\u0119pnym po\u015bcie<\/h2>\n<p>G\u0142\u00f3wnym celem nast\u0119pnego wpisu jest kontynuacja aktualizacji standard\u00f3w kodowania, dzi\u0119ki czemu rozwi\u0105zali\u015bmy wszystkie problemy rzucone przez nasze IDE lub przez narz\u0119dzia jako\u015bci kodu, kt\u00f3re uruchamiamy w wierszu polece\u0144.<\/p>\n<p>Powinni\u015bmy r\u00f3wnie\u017c mie\u0107 znacznie czystsze, lepiej zorganizowane repozytorium i by\u0107 w stanie, w kt\u00f3rym jeste\u015bmy gotowi do scalenia naszej pracy z powrotem do ga\u0142\u0119zi g\u0142\u00f3wnej.<\/p>\n<p>Na razie jednak upewnij si\u0119, \u017ce dobrze znasz wszystko powy\u017cej, zanim przejdziesz dalej, poniewa\u017c konieczne jest zrozumienie przez pozosta\u0142\u0105 cz\u0119\u015b\u0107 pracy, kt\u00f3r\u0105 mamy przed sob\u0105.<\/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>To nie tylko poprawi jako\u015b\u0107 kodu, ale tak\u017ce przeprowadzi nas przez kilka zasad obiektowych, kt\u00f3re mo\u017cemy zastosowa\u0107 podczas tworzenia naszych wid\u017cet\u00f3w WordPress.<\/p>\n","protected":false},"author":1,"featured_media":235111,"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-230569","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\/230569","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=230569"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/235111"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=230569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=230569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=230569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}