{"id":229176,"date":"2022-11-14T14:26:00","date_gmt":"2022-11-14T11:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229176"},"modified":"2022-11-14T14:26:19","modified_gmt":"2022-11-14T11:26:19","slug":"varfoer-bry-sig-om-automatisk-laddning-i-wordpress-del-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/varfoer-bry-sig-om-automatisk-laddning-i-wordpress-del-2\/","title":{"rendered":"Varf\u00f6r bry sig om automatisk laddning i WordPress, del 2"},"content":{"rendered":"\n<p>I <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/varfoer-bry-sig-om-automatisk-laddning-i-wordpress-del-1\/\" title=\"det f\u00f6rra inl\u00e4gget\">det f\u00f6rra inl\u00e4gget<\/a> tog jag upp n\u00e5gra punkter om varf\u00f6r jag tror att <strong>include_once, <em><\/em><\/strong> require_once<em><\/em> och andra liknande p\u00e5st\u00e5enden resulterar i d\u00e5liga utvecklingsmetoder (\u00e5tminstone n\u00e4r det kommer till arbetet vi g\u00f6r med v\u00e5ra WordPress-projekt ).<\/p>\n<p>Om du inte har l\u00e4st den, ingen stor sak. Kontentan av inl\u00e4gget \u00e4r att dessa uttalanden g\u00f6r:<\/p>\n<ol>\n<li>sv\u00e5rare att fels\u00f6ka,<\/li>\n<li>sp\u00e5rningskod sv\u00e5rare att g\u00f6ra.<\/li>\n<\/ol>\n<p>I slut\u00e4ndan \u00e4r de saker vi kan undvika. Jag avslutade inl\u00e4gget med f\u00f6ljande:<\/p>\n<p>Detta l\u00e4mnar fortfarande fr\u00e5gan om varf\u00f6r autoloading (eller n\u00e5gon inkludering av tredjepartsfiler) \u00f6verhuvudtaget beh\u00f6vs.<\/p>\n<p>Och \u00e4ven om jag skulle \u00e4lska att t\u00e4cka alla detaljer i det h\u00e4r inl\u00e4gget, kommer det att ta detta och ytterligare ett inl\u00e4gg som det \u00e4r viktigt att f\u00f6rst\u00e5 n\u00e5gra grundl\u00e4ggande \u00e4mnen om spr\u00e5k, tolkar och kompilatorer innan du g\u00e5r f\u00f6r l\u00e5ngt fram.<\/p>\n<h2>Automatisk laddning i WordPress: Typer av spr\u00e5k<\/h2>\n<p>N\u00e4r det g\u00e4ller programmeringsspr\u00e5k kan de delas upp i tv\u00e5 olika typer av spr\u00e5k:<\/p>\n<ol>\n<li>statiskt typad<\/li>\n<li>dynamiskt typad<\/li>\n<\/ol>\n<p>De \u00e4r ocks\u00e5 l\u00e4tta att uppt\u00e4cka.<\/p>\n<h3>Statiskt skrivna spr\u00e5k<\/h3>\n<p>Ett statiskt skrivet spr\u00e5k betyder att n\u00e4r du deklarerar en variabel, som en str\u00e4ng, ett heltal eller ett flyttal, beh\u00e5ller den den typen under hela sin livstid.<\/p>\n<p>Detta betyder inte att det inte kan \u00e4ndras eller analyseras till en annan typ, men tanken \u00e4r att du deklarerar dess typ och det \u00e4r s\u00e5 det fungerar.<\/p>\n<p>Det anges vanligtvis som en viss typ n\u00e4r det deklareras, som <strong>string<\/strong> eller <strong>int<\/strong>, och det ses oftast p\u00e5 kompilerade spr\u00e5k.<\/p>\n<h3>Dynamiskt typade spr\u00e5k<\/h3>\n<p>Dynamiskt typade spr\u00e5k, \u00e5 andra sidan, har variabler som \u00e4r mer flytande, i brist p\u00e5 en b\u00e4ttre term, till sin natur.<\/p>\n<p>Det vill s\u00e4ga, du kan initialt deklarera det som en <strong>str\u00e4ng<\/strong> och sedan j\u00e4mf\u00f6ra det med ett <strong>heltal<\/strong> och senare anv\u00e4nda det som en <strong>str\u00e4ng<\/strong> igen.<\/p>\n<p>Tolken eller kompilatorn (beroende p\u00e5 vilket spr\u00e5k du anv\u00e4nder) kommer att g\u00f6ra det b\u00e4sta den kan f\u00f6r att sluta sig till vad du f\u00f6rs\u00f6ker g\u00f6ra baserat p\u00e5 sammanhanget f\u00f6r vad du g\u00f6r i din kod, men det \u00e4r inte alltid r\u00e4tt.<\/p>\n<p>Det kan leda till konstiga biverkningar och buggar.<\/p>\n<p>JavaScript \u00e4r s\u00e5 h\u00e4r. F\u00f6r att se ett exempel, \u00f6ppna din webbl\u00e4sares konsol och skriv in n\u00e5got liknande det du ser i f\u00f6ljande sk\u00e4rmdump (och var uppm\u00e4rksam p\u00e5 resultatet):<\/p>\n<p>L\u00e4gg m\u00e4rke till att n\u00e4r vi anv\u00e4nder ett vanligt dubbellika-tecken, tvingar tolken str\u00e4ngen till den booleska typen \u00e4ven om den sanna str\u00e4ngen inte \u00e4r sann.<\/p>\n<p>Det andra fallet \u00e4r korrekt (och det \u00e4r d\u00e4rf\u00f6r trippellika n\u00e4stan alltid b\u00f6r anv\u00e4ndas).<\/p>\n<p>Dessutom, hur n\u00e5got kan fungera p\u00e5 ett spr\u00e5k \u00e4r inte hur det kan fungera p\u00e5 ett annat spr\u00e5k.\n<\/p>\n<p>Summan av kardemumman \u00e4r att f\u00f6rv\u00e4nta dig inte att dina spr\u00e5k g\u00f6r samma sak bara f\u00f6r att de kan st\u00f6dja dynamisk skrivning.<\/p>\n<h2>Vad har detta med autoladdning att g\u00f6ra?<\/h2>\n<p>Okej, s\u00e5 vi har pratat lite om primitiver och allt det d\u00e4r \u00e4r bra, men det g\u00f6r inte s\u00e5 mycket n\u00e4r man pratar om klasser, objekt, instansiering, autoloading och s\u00e5 vidare, eller hur?<\/p>\n<p>Syftet med att ta upp ovan n\u00e4mnda \u00e4mnen \u00e4r att visa vilken roll tolkar och kompilatorer spelar n\u00e4r de arbetar med kod i dynamiska spr\u00e5k.<\/p>\n<p>Och detta \u00e4r viktigt eftersom PHP \u00e4r ett dynamiskt spr\u00e5k.<\/p>\n<p>Vid det h\u00e4r laget skulle jag ursprungligen b\u00f6rja titta p\u00e5 exempel p\u00e5 PHP-kod, namnutrymmen, autoloading, <strong>include<\/strong> &#8211; satser och allt det d\u00e4r, men jag f\u00f6rs\u00f6ker h\u00e5lla mina artiklar i en viss l\u00e4ngd och detta b\u00f6rjade str\u00e4cka sig lite l\u00e4ngre \u00e4n jag ville .<\/p>\n<p>S\u00e5 den ultimata take away fr\u00e5n detta inl\u00e4gg, om jag m\u00e5ste sammanfatta det, \u00e4r detta:<\/p>\n<p>Dynamiskt typade spr\u00e5k, som PHP, ges inte lyxen av kompilerade spr\u00e5k d\u00e4r allt kompileras till en enda bin\u00e4r. Vi m\u00e5ste ber\u00e4tta f\u00f6r programmet, p\u00e5 n\u00e5got s\u00e4tt, var beroenden finns inom ramen f\u00f6r det st\u00f6rre programmet.<\/p>\n<p>Och det \u00e4r vad jag ska ta upp i n\u00e4sta inl\u00e4gg.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Att f\u00f6rst\u00e5 dynamiskt skrivna spr\u00e5k och statiskt skrivna spr\u00e5k \u00e4r nyckeln n\u00e4r det g\u00e4ller att f\u00f6rst\u00e5 autoloading i WordPress och 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":[848,901,724],"tags":[1173],"class_list":["post-229176","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=229176"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229176\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/165674"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}