{"id":229279,"date":"2022-11-14T14:25:00","date_gmt":"2022-11-14T11:25:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229279"},"modified":"2022-11-14T14:30:26","modified_gmt":"2022-11-14T11:30:26","slug":"po-co-zawracac-sobie-glowe-automatycznym-ladowaniem-w-wordpressie-czesc-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/po-co-zawracac-sobie-glowe-automatycznym-ladowaniem-w-wordpressie-czesc-2\/","title":{"rendered":"Po co zawraca\u0107 sobie g\u0142ow\u0119 automatycznym \u0142adowaniem w WordPressie, cz\u0119\u015b\u0107 2"},"content":{"rendered":"\n<p>W <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/po-co-zawracac-sobie-glowe-automatycznym-ladowaniem-w-wordpressie-czesc-1\/\" title=\"poprzednim po\u015bcie\">poprzednim po\u015bcie<\/a> om\u00f3wi\u0142em kilka kwestii, dlaczego uwa\u017cam, \u017ce <strong>include_once, <em><\/em><\/strong> wymaganie_once<em><\/em> i inne podobne stwierdzenia skutkuj\u0105 s\u0142abymi praktykami programistycznymi (przynajmniej je\u015bli chodzi o prac\u0119, kt\u00f3r\u0105 wykonujemy z naszymi projektami WordPress ).<\/p>\n<p>Je\u015bli tego nie czyta\u0142e\u015b, nic wielkiego. Istot\u0105 postu jest to, \u017ce te stwierdzenia m\u00f3wi\u0105:<\/p>\n<ol>\n<li>trudniejsze debugowanie,<\/li>\n<li>kod \u015bledzenia trudniejszy do zrobienia.<\/li>\n<\/ol>\n<p>Ostatecznie s\u0105 to rzeczy, kt\u00f3rych mo\u017cemy unikn\u0105\u0107. Zako\u0144czy\u0142em post nast\u0119puj\u0105cym tekstem:<\/p>\n<p>To wci\u0105\u017c pozostawia pytanie, dlaczego automatyczne \u0142adowanie (lub jakiekolwiek w\u0142\u0105czanie plik\u00f3w stron trzecich) jest w og\u00f3le potrzebne.<\/p>\n<p>I chocia\u017c chcia\u0142bym om\u00f3wi\u0107 wszystkie szczeg\u00f3\u0142y w tym po\u015bcie, przyjm\u0119 ten i jeszcze jeden post jako wa\u017cne, aby zrozumie\u0107 niekt\u00f3re podstawowe tematy dotycz\u0105ce j\u0119zyk\u00f3w, t\u0142umaczy i kompilator\u00f3w, zanim przejdziemy za daleko.<\/p>\n<h2>Automatyczne \u0142adowanie w WordPress: rodzaje j\u0119zyk\u00f3w<\/h2>\n<p>Je\u015bli chodzi o j\u0119zyki programowania, mo\u017cna je podzieli\u0107 na dwa r\u00f3\u017cne typy j\u0119zyk\u00f3w:<\/p>\n<ol>\n<li>wpisane statycznie<\/li>\n<li>wpisywany dynamicznie<\/li>\n<\/ol>\n<p>S\u0105 te\u017c \u0142atwe do zauwa\u017cenia.<\/p>\n<h3>J\u0119zyki wpisywane statycznie<\/h3>\n<p>J\u0119zyk z typami statycznymi oznacza, \u017ce \u200b\u200bkiedy deklarujesz zmienn\u0105, tak\u0105 jak ci\u0105g, liczba ca\u0142kowita lub liczba zmiennoprzecinkowa, zachowuje ten typ przez ca\u0142y okres istnienia.<\/p>\n<p>Nie oznacza to, \u017ce nie mo\u017cna go zmieni\u0107 lub przetworzy\u0107 na inny typ, ale chodzi o to, \u017ce deklarujesz jego typ i tak to dzia\u0142a.<\/p>\n<p>Zwykle jest okre\u015blany jako okre\u015blony typ, gdy jest deklarowany, na przyk\u0142ad <strong>string<\/strong> lub <strong>int<\/strong>, i jest najcz\u0119\u015bciej spotykany w j\u0119zykach skompilowanych.<\/p>\n<h3>J\u0119zyki z typowaniem dynamicznym<\/h3>\n<p>Z drugiej strony, j\u0119zyki z typowaniem dynamicznym maj\u0105 zmienne, kt\u00f3re z natury s\u0105 bardziej p\u0142ynne, z braku lepszego terminu.<\/p>\n<p>Oznacza to, \u017ce mo\u017cesz pocz\u0105tkowo zadeklarowa\u0107 go jako <strong>\u0142a\u0144cuch<\/strong>, a nast\u0119pnie por\u00f3wna\u0107 go z <strong>liczb\u0105 ca\u0142kowit\u0105<\/strong>, a p\u00f3\u017aniej ponownie u\u017cy\u0107 jako <strong>\u0142a\u0144cucha<\/strong>.<\/p>\n<p>Interpreter lub kompilator (w zale\u017cno\u015bci od u\u017cywanego j\u0119zyka) zrobi wszystko, co w jego mocy, aby wywnioskowa\u0107, co pr\u00f3bujesz zrobi\u0107, na podstawie kontekstu tego, co robisz w swoim kodzie, ale nie zawsze jest to w\u0142a\u015bciwe.<\/p>\n<p>To mo\u017ce prowadzi\u0107 do dziwnych skutk\u00f3w ubocznych i b\u0142\u0119d\u00f3w.<\/p>\n<p>JavaScript jest taki. Aby zobaczy\u0107 przyk\u0142ad, otw\u00f3rz konsol\u0119 przegl\u0105darki i wprowad\u017a co\u015b podobnego do tego, co widzisz na poni\u017cszym zrzucie ekranu (i zwr\u00f3\u0107 uwag\u0119 na wynik):<\/p>\n<p>Zauwa\u017c, \u017ce kiedy u\u017cywamy standardowego znaku podw\u00f3jnej r\u00f3wno\u015bci, interpreter przekszta\u0142ca ci\u0105g w typ logiczny, nawet je\u015bli prawdziwy ci\u0105g nie jest prawdziwy.<\/p>\n<p>Drugi przypadek jest dok\u0142adny (i dlatego prawie zawsze powinno si\u0119 stosowa\u0107 potr\u00f3jne r\u00f3wnanie).<\/p>\n<p>Co wi\u0119cej, spos\u00f3b, w jaki co\u015b mo\u017ce dzia\u0142a\u0107 w jednym j\u0119zyku, nie jest tym, jak mo\u017ce dzia\u0142a\u0107 w innym j\u0119zyku.\n<\/p>\n<p>Najwa\u017cniejsze jest to, \u017ce nie oczekuj, \u017ce twoje j\u0119zyki zrobi\u0105 to samo tylko dlatego, \u017ce mog\u0105 obs\u0142ugiwa\u0107 dynamiczne pisanie.<\/p>\n<h2>Co to ma wsp\u00f3lnego z automatycznym \u0142adowaniem?<\/h2>\n<p>Okej, wi\u0119c rozmawiali\u015bmy troch\u0119 o prymitywach i wszystko to jest w porz\u0105dku, ale nie robi to wiele, gdy m\u00f3wimy o klasach, obiektach, instancjach, automatycznym \u0142adowaniu i tak dalej, prawda?<\/p>\n<p>Celem poruszenia wy\u017cej wymienionych temat\u00f3w jest pokazanie roli, jak\u0105 interpretery i kompilatory odgrywaj\u0105 podczas pracy z kodem w j\u0119zykach dynamicznych.<\/p>\n<p>A to jest wa\u017cne, poniewa\u017c PHP jest j\u0119zykiem dynamicznym.<\/p>\n<p>W tym momencie mia\u0142em zamiar zacz\u0105\u0107 patrze\u0107 na przyk\u0142adowy kod PHP, przestrzenie nazw, automatyczne \u0142adowanie,\u00a0 instrukcje <strong>include<\/strong> i wszystko to, ale staram si\u0119, aby moje artyku\u0142y mia\u0142y okre\u015blon\u0105 d\u0142ugo\u015b\u0107 i zacz\u0119\u0142o si\u0119 to rozci\u0105ga\u0107 troch\u0119 dalej ni\u017c chcia\u0142em .<\/p>\n<p>Wi\u0119c ostatecznym wnioskiem z tego postu, je\u015bli mia\u0142bym to podsumowa\u0107, jest to:<\/p>\n<p>J\u0119zyki z typowaniem dynamicznym, takie jak PHP, nie maj\u0105 luksusu j\u0119zyk\u00f3w kompilowanych, w kt\u00f3rych wszystko jest skompilowane w jeden plik binarny. Musimy w jaki\u015b spos\u00f3b powiedzie\u0107 programowi, gdzie istniej\u0105 zale\u017cno\u015bci w kontek\u015bcie wi\u0119kszego programu.<\/p>\n<p>I to w\u0142a\u015bnie zamierzam om\u00f3wi\u0107 w nast\u0119pnym po\u015bcie.<\/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 j\u0119zyk\u00f3w wpisanych dynamicznie i j\u0119zyk\u00f3w wpisanych statycznie jest kluczowe, je\u015bli chodzi o zrozumienie automatycznego \u0142adowania w WordPress i PHP.<\/p>\n","protected":false},"author":1,"featured_media":165674,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,897,845],"tags":[1169],"class_list":["post-229279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-samouczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229279","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=229279"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229279\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/165674"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}