{"id":230972,"date":"2022-12-25T12:52:00","date_gmt":"2022-12-25T09:52:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230972"},"modified":"2022-12-25T12:56:02","modified_gmt":"2022-12-25T09:56:02","slug":"lepszy-kod-wordpress-plik-blokady-composer","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/lepszy-kod-wordpress-plik-blokady-composer\/","title":{"rendered":"Lepszy kod WordPress: plik blokady Composer"},"content":{"rendered":"\n<p>Zanim zako\u0144czymy nasz\u0105 dyskusj\u0119 na temat Composera, pozosta\u0142a nam jedna wa\u017cna rzecz do om\u00f3wienia: katalog <strong>dostawcy<\/strong> (i co za tym idzie, plik blokady Composera).<\/p>\n<p>W szczeg\u00f3lno\u015bci musimy porozmawia\u0107 o tym, dlaczego nie musimy zatwierdza\u0107 katalogu <strong>dostawcy<\/strong> do repozytorium, ale o tym, jak nasi wsp\u00f3\u0142pracownicy mog\u0105 by\u0107 pewni, \u017ce maj\u0105 najnowsz\u0105 wersj\u0119 oprogramowania potrzebnego do pracy z nasz\u0105 baz\u0105 kodu.<\/p>\n<p>U\u017cywanie narz\u0119dzi jako\u015bci kodu do <a href=\"https:\/\/tommcfarlin.com\/tag\/better-wordpress-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pisania lepszego kodu WordPress<\/a> jest wa\u017cne, tak, ale wa\u017cne jest r\u00f3wnie\u017c zrozumienie, jak prawid\u0142owo zarz\u0105dza\u0107 zale\u017cno\u015bciami i naszym repozytorium. Wi\u0119c zanim przyjrzymy si\u0119 wspomnianym narz\u0119dziom, przejrzyjmy plik blokady, rol\u0119, jak\u0105 odgrywa i dlaczego nie musimy zatwierdza\u0107 katalogu <strong>dostawcy<\/strong> w naszym repozytorium.<\/p>\n<h2>Lepszy kod WordPress z plikiem blokady Composer<\/h2>\n<p>Dla tych, kt\u00f3rzy pracuj\u0105 z WordPressem \u2013 i by\u0107 mo\u017ce z innymi frameworkami i podstawami opartymi na PHP (tak naprawd\u0119 nie wiem, poniewa\u017c zwykle nie pracuj\u0119 z nimi) \u2013 polegaj\u0105 na Composer, co jest dobr\u0105 rzecz\u0105.<\/p>\n<p>Mo\u017ce to r\u00f3wnie\u017c prowadzi\u0107 do ch\u0119ci zatwierdzenia ca\u0142ej kontroli \u017ar\u00f3d\u0142a katalogu dostawcy, co nie jest dobr\u0105 rzecz\u0105.<\/p>\n<p>Jak wspomniano <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/narzedzia-do-pisania-lepszego-kodu-wordpress-kompozytor\/\" title=\"w poprzednim po\u015bcie\">w poprzednim po\u015bcie<\/a> :<\/p>\n<blockquote>\n<p>I nie polecam sprawdzania katalogu dostawc\u00f3w w twoim repozytorium. Mo\u017ce to sta\u0107 si\u0119 p\u00f3\u017aniej ogromnym katalogiem i mo\u017ce podwa\u017cy\u0107 ca\u0142y cel Composera.<\/p>\n<\/blockquote>\n<p>Jak wi\u0119c mo\u017cemy upewni\u0107 si\u0119, \u017ce nie niepotrzebnie zatwierdzamy plik\u00f3w (a tym samym powi\u0119kszamy rozmiar naszego repozytorium) do repozytorium, jednocze\u015bnie upewniaj\u0105c si\u0119, \u017ce nasi wsp\u00f3\u0142tw\u00f3rcy u\u017cywaj\u0105 tej samej wersji oprogramowania co my?<\/p>\n<h3>Ch\u0119\u0107 zatwierdzenia katalogu dostawc\u00f3w<\/h3>\n<p>Dla tych z was, kt\u00f3rzy uruchomili Composer i s\u0105 zaznajomieni z przynajmniej przegl\u0105daniem katalogu <strong>dostawcy<\/strong>, prawdopodobnie przywykli do ogl\u0105dania wielu katalog\u00f3w zale\u017cno\u015bci, kt\u00f3re s\u0105 zainstalowane.<\/p>\n<p>I s\u0105 przydatne; w przeciwnym razie by\u015b ich nie uwzgl\u0119dni\u0142, prawda?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160092-61e705582e682.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-160092-61e705582e682.png\" alt=\"Lepszy kod WordPress: plik blokady Composer\"><\/a><\/p>\n<p>Ale oto kwestia\u00a0 katalogu <strong>dostawcy\u00a0<\/strong>: nawet je\u015bli masz tylko kilka zale\u017cno\u015bci zainstalowanych w swoim projekcie, sam rozmiar pliku mo\u017ce by\u0107 du\u017cy. A to mo\u017ce by\u0107 jeszcze wi\u0119ksze, gdy masz du\u017co zale\u017cno\u015bci.<\/p>\n<p>Niezale\u017cnie od tego, przekazanie tego do kontroli \u017ar\u00f3d\u0142a wydaje si\u0119 mie\u0107 sens, prawda? Chcemy mie\u0107 pewno\u015b\u0107, \u017ce wszyscy maj\u0105 t\u0119 sam\u0105 wersj\u0119 oprogramowania, kt\u00f3rej u\u017cywamy, i chcemy mie\u0107 pewno\u015b\u0107, \u017ce nie b\u0119d\u0105 musieli zajmowa\u0107 si\u0119 Composerem.<\/p>\n<p>Jest jednak inny spos\u00f3b. Dzi\u0119ki temu nasze repozytorium jest ma\u0142e, jednocze\u015bnie upewniaj\u0105c si\u0119, \u017ce wersje naszych zale\u017cno\u015bci s\u0105 zsynchronizowane z tymi, kt\u00f3rzy klonuj\u0105 repozytorium, zatwierdzaj\u0105 repozytorium lub dla dowolnego narz\u0119dzia do ci\u0105g\u0142ej integracji, kt\u00f3re korzysta z repozytorium.<\/p>\n<h3>Zrozumienie pliku blokady<\/h3>\n<p>Zanim om\u00f3wi\u0119 katalog dostawc\u00f3w, chcia\u0142bym poruszy\u0107 inny wa\u017cny aspekt Composera: plik blokady. Oznacza to, \u017ce je\u015bli uruchomisz polecenie <strong>instalacji<\/strong> lub <strong>aktualizacji<\/strong> w swoim terminalu, zobaczysz plik blokady wygenerowany wraz z katalogiem <strong>dostawcy .<\/strong><\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160092-61e7055c190d2.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-160092-61e7055c190d2.png\" alt=\"Lepszy kod WordPress: plik blokady Composer\"><\/a><\/p>\n<p>Co to za plik?<\/p>\n<p>Poprzedni post pokaza\u0142 przyk\u0142adowy plik konfiguracyjny. Jedn\u0105 z rzeczy, na kt\u00f3re pozwala nam ten plik, jest definiowanie zewn\u0119trznych bibliotek lub zale\u017cno\u015bci, kt\u00f3rych mo\u017cemy u\u017cywa\u0107 w naszych projektach.<\/p>\n<p>M\u00f3wi\u0142em o tym <a href=\"https:\/\/tommcfarlin.com\/tag\/libraries-for-wordpress-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">w innych postach<\/a> (mo\u017cemy przyjrze\u0107 si\u0119 temu nieco dalej w tej serii). Ale tutaj pojawia si\u0119 plik blokady.<\/p>\n<p>Kr\u00f3tko m\u00f3wi\u0105c, plik blokady zawsze zawiera informacje o wersji \u2013 <strong>dok\u0142adnej<\/strong> wersji \u2013 zale\u017cno\u015bci u\u017cywanych w projekcie podczas ostatniego uruchomienia <strong>instalacji<\/strong> lub <strong>aktualizacji<\/strong>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160092-61e7056059bac.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-160092-61e7056059bac.png\" alt=\"Lepszy kod WordPress: plik blokady Composer\"><\/a><\/p>\n<p><a href=\"https:\/\/getcomposer.org\/doc\/01-basic-usage.md#installing-without-composer-lock\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Z instrukcji<\/a> :<\/p>\n<blockquote>\n<p>Po zako\u0144czeniu instalacji Composer zapisuje wszystkie pakiety i ich dok\u0142adne wersje, kt\u00f3re pobra\u0142 do pliku composer.lock, blokuj\u0105c projekt w tych konkretnych wersjach.<\/p>\n<p>Powiniene\u015b zatwierdzi\u0107 plik composer.lock do swojego repozytorium projektu, aby wszystkie osoby pracuj\u0105ce nad projektem by\u0142y zablokowane do tych samych wersji zale\u017cno\u015bci (wi\u0119cej poni\u017cej).<\/p>\n<\/blockquote>\n<p>Celem jest upewnienie si\u0119, \u017ce ka\u017cdy z nich korzysta z tej samej wersji zale\u017cno\u015bci projektu \u2013 nie starsze wersje, nie nowsze wersje \u2013 ale ta sama wersja.<\/p>\n<p>Tak wi\u0119c, po uruchomieniu <strong>kompozytora instalacji<\/strong>, gdy plik blokady jest zawarty w repozytorium, u\u017cyje wersji oprogramowania okre\u015blonej w pliku blokady.<\/p>\n<p>Gwarantuje to, \u017ce wszyscy korzystaj\u0105 z tej samej wersji ka\u017cdej zale\u017cno\u015bci, a tym samym mog\u0105 zapobiec konieczno\u015bci zatwierdzania katalogu dostawcy do kontroli \u017ar\u00f3d\u0142a.<\/p>\n<h2>Pisanie kodu wy\u017cszej jako\u015bci<\/h2>\n<p>Wi\u0119c dok\u0105d st\u0105d p\u00f3jdziemy?<\/p>\n<p>Teraz, gdy rozumiemy, jak korzysta\u0107 z Composera i jak korzysta\u0107 z pliku blokady, mo\u017cemy zacz\u0105\u0107 m\u00f3wi\u0107 o rzeczywistych zale\u017cno\u015bciach, kt\u00f3re pomagaj\u0105 poprawi\u0107 jako\u015b\u0107 naszego kodu.<\/p>\n<p>A kiedy m\u00f3wimy o pisaniu kodu o wy\u017cszej jako\u015bci, istniej\u0105 narz\u0119dzia stworzone w\u0142a\u015bnie do tego. Dlatego w kilku nast\u0119pnych postach przyjrzymy si\u0119 niekt\u00f3rym z nich.<\/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>Zrozumienie, w jaki spos\u00f3b plik blokady Composer uniemo\u017cliwia nam zatwierdzenie katalogu dostawcy w naszym repozytorium.<\/p>\n","protected":false},"author":1,"featured_media":236343,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,836,845,866],"tags":[1169],"class_list":["post-230972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230972","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=230972"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/230972\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/236343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=230972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=230972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=230972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}