{"id":230183,"date":"2022-11-14T13:48:00","date_gmt":"2022-11-14T10:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230183"},"modified":"2022-11-14T13:49:07","modified_gmt":"2022-11-14T10:49:07","slug":"perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-2\/","title":{"rendered":"Perch\u00e9 preoccuparsi del caricamento automatico in WordPress, parte 2"},"content":{"rendered":"\n<p>Nel <a href=\"https:\/\/wordpress.mediadoma.com\/it\/perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-1\/\" title=\"post precedente\">post precedente<\/a>, ho spiegato alcuni punti sul motivo per cui penso che <strong>include_once, <em><\/em><\/strong> require_once<em><\/em> e altre affermazioni simili si traducano in pratiche di sviluppo scadenti (almeno quando si tratta del lavoro che stiamo facendo con i nostri progetti WordPress ).<\/p>\n<p>Se non l&#8217;hai letto, niente di grave. Il succo del post \u00e8 che queste affermazioni fanno:<\/p>\n<ol>\n<li>debug pi\u00f9 difficile,<\/li>\n<li>codice di tracciamento pi\u00f9 difficile da fare.<\/li>\n<\/ol>\n<p>In definitiva, sono cose che possiamo evitare. Ho chiuso il post con quanto segue:<\/p>\n<p>Questo lascia ancora la questione del perch\u00e9 sia \u200b\u200bnecessario il caricamento automatico (o qualsiasi inclusione di file di terze parti).<\/p>\n<p>E anche se mi piacerebbe coprire tutti i dettagli in questo post, prender\u00e0 questo e un altro post come importante per comprendere alcuni argomenti fondamentali su linguaggi, interpreti e compilatori prima di andare troppo avanti.<\/p>\n<h2>Caricamento automatico in WordPress: tipi di lingue<\/h2>\n<p>Quando si tratta di linguaggi di programmazione, possono essere suddivisi in due tipi distinti di linguaggi:<\/p>\n<ol>\n<li>tipizzato statico<\/li>\n<li>tipizzato dinamicamente<\/li>\n<\/ol>\n<p>Sono anche facili da individuare.<\/p>\n<h3>Linguaggi tipizzati staticamente<\/h3>\n<p>Un linguaggio tipizzato staticamente significa che quando si dichiara una variabile, come una stringa, un numero intero o un numero in virgola mobile, mantiene quel tipo per tutta la sua durata.<\/p>\n<p>Ci\u00f2 non significa che non possa essere modificato o analizzato in un altro tipo, ma l&#8217;idea \u00e8 che tu dichiari il suo tipo ed \u00e8 cos\u00ec che funziona.<\/p>\n<p>Viene generalmente specificato come un determinato tipo quando viene dichiarato, come <strong>string<\/strong> o <strong>int<\/strong>, e viene visualizzato pi\u00f9 spesso nei linguaggi compilati.<\/p>\n<h3>Linguaggi tipizzati dinamicamente<\/h3>\n<p>I linguaggi tipizzati dinamicamente, d&#8217;altra parte, hanno variabili pi\u00f9 fluide, per mancanza di un termine migliore, in natura.<\/p>\n<p>Cio\u00e8, puoi inizialmente dichiararlo come <strong>stringa<\/strong>, quindi confrontarlo con un <strong>numero intero<\/strong> e successivamente usarlo di nuovo come <strong>stringa<\/strong>.<\/p>\n<p>L&#8217;interprete o il compilatore (a seconda della lingua che stai utilizzando) far\u00e0 del suo meglio per dedurre ci\u00f2 che stai cercando di fare in base al contesto di ci\u00f2 che stai facendo nel tuo codice, ma non \u00e8 sempre corretto.<\/p>\n<p>Ci\u00f2 pu\u00f2 portare a strani effetti collaterali e bug.<\/p>\n<p>JavaScript \u00e8 cos\u00ec. Per vedere un esempio, apri la console del tuo browser e inserisci qualcosa di simile a quello che vedi nello screenshot seguente (e fai attenzione al risultato):<\/p>\n<p>Si noti che quando utilizziamo un segno di doppio uguale standard, l&#8217;interprete forza la stringa nel tipo booleano anche se la stringa vera non \u00e8 vera.<\/p>\n<p>Il secondo caso \u00e8 accurato (ed \u00e8 per questo che dovrebbe essere usato quasi sempre il triplo uguale).<\/p>\n<p>Inoltre, il modo in cui qualcosa pu\u00f2 funzionare in una lingua non \u00e8 come potrebbe funzionare in un&#8217;altra lingua.\n<\/p>\n<p>La linea di fondo \u00e8 che non aspettarti che le tue lingue facciano la stessa cosa solo perch\u00e9 potrebbero supportare la digitazione dinamica.<\/p>\n<h2>Che cosa ha a che fare con il caricamento automatico?<\/h2>\n<p>Ok, quindi abbiamo parlato un po&#8217; di primitive e tutto ci\u00f2 va bene, ma non fa molto quando si parla di classi, oggetti, istanze, caricamento automatico e cos\u00ec via, vero?<\/p>\n<p>Lo scopo di sollevare gli argomenti di cui sopra \u00e8 mostrare il ruolo che interpreti e compilatori svolgono quando lavorano con il codice in linguaggi dinamici.<\/p>\n<p>E questo \u00e8 importante perch\u00e9 PHP \u00e8 un linguaggio dinamico.<\/p>\n<p>A questo punto, inizialmente stavo per iniziare a guardare il codice PHP di esempio, gli spazi dei nomi, il caricamento automatico,\u00a0 le istruzioni <strong>include<\/strong> e tutto il resto, ma cerco di mantenere i miei articoli a una certa lunghezza e questo ha iniziato ad allungarsi un po&#8217; pi\u00f9 di quanto volevo .<\/p>\n<p>Quindi il risultato finale di questo post, se dovessi riassumerlo, \u00e8 questo:<\/p>\n<p>Ai linguaggi tipizzati dinamicamente, come PHP, non viene concesso il lusso dei linguaggi compilati in cui tutto viene compilato in un unico binario. Dobbiamo dire al programma, in qualche modo, dove esistono le dipendenze nel contesto del programma pi\u00f9 ampio.<\/p>\n<p>Ed \u00e8 quello che mirer\u00f2 a trattare nel prossimo post.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La comprensione dei linguaggi digitati dinamicamente e dei linguaggi tipizzati staticamente \u00e8 fondamentale quando si tratta di comprendere il caricamento automatico in WordPress e in 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":[896,720,844],"tags":[1168],"class_list":["post-230183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-sviluppatore","category-tutorial","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=230183"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230183\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165674"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}