{"id":234120,"date":"2022-11-15T10:45:00","date_gmt":"2022-11-15T07:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234120"},"modified":"2022-11-15T10:48:16","modified_gmt":"2022-11-15T07:48:16","slug":"perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-3","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-3\/","title":{"rendered":"Perch\u00e9 preoccuparsi del caricamento automatico in WordPress, parte 3"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/it\/perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-2\/\" title=\"Nell'ultimo post\">Nell&#8217;ultimo post<\/a>, ho detto che non potevamo permetterci alcuni degli stessi lussi che hanno i linguaggi compilati e tipizzati staticamente. Nello specifico, stavo parlando dell&#8217;idea di non avere a che fare con i caricatori automatici.<\/p>\n<p>Invece, i linguaggi compilati possono prendere tutti i file che compongono il programma, elaborarli e raggrupparli in un unico binario.<\/p>\n<p>Ma per farlo, ha bisogno di un tipo specifico di programma per farlo.<\/p>\n<h2>Caricamento automatico in WordPress: linker e caricatori automatici<\/h2>\n<p>Cio\u00e8, usa un&#8217;utilit\u00e0 chiamata <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linker_(computing)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">linker<\/a>. Lo tratter\u00f2 brevemente per un momento, ma vedere il ruolo che svolge nel contesto dei linguaggi compilati pu\u00f2 aiutare a tracciare un&#8217;analogia con il modo in cui funziona il caricamento automatico in WordPress (e PHP).<\/p>\n<h3>Cos&#8217;\u00e8 un linker?<\/h3>\n<p>A seconda del linguaggio con cui stai lavorando, in particolare con i linguaggi di programmazione orientati agli oggetti, \u00e8 probabile che il codice venga distribuito su pi\u00f9 file.<\/p>\n<p>Inoltre, ciascuno di questi file verr\u00e0 raggruppato nei loro pacchetti (ci riferiamo a questi come spazi dei nomi come PHP e anche la maggior parte dei linguaggi compilati fa lo stesso). Quindi, a scopo dimostrativo, si supponga che i file siano inclusi nei rispettivi spazi dei nomi.<\/p>\n<p>Quindi, in tutta la base di codice, hai tutti questi file correlati tramite spazi dei nomi ma distribuiti su file separati.<\/p>\n<p>Quando arriva il momento di compilare tutto questo in un unico binario eseguibile, un programma chiamato linker analizza il codice e lo fa magicamente per aiutare a creare un singolo binario eseguibile (rispetto a una raccolta di file come siamo abituati a vedere in progetti basati su PHP).<\/p>\n<h3>E il caricamento automatico?<\/h3>\n<p>Quindi quali sono le somiglianze tra caricamento automatico e collegamento? Come accennato, i progetti che costruiamo in WordPress (e PHP) risiedono costantemente in file separati. Cio\u00e8, non verranno mai compilati in un file.<\/p>\n<p>Direi che una volta (anche se questo accade ancora), usiamo <a href=\"https:\/\/php.net\/manual\/en\/function.include-once.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">include_once<\/a> o <a href=\"https:\/\/php.net\/manual\/en\/function.require-once.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">require_once<\/a> per inserire tutte le dipendenze di cui abbiamo bisogno. Ma il caricamento automatico annulla la necessit\u00e0 di farlo.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165652-61e7858e62d47.jpg\" 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-165652-61e7858e62d47.jpg\" alt=\"Perch\u00e9 preoccuparsi del caricamento automatico in WordPress, parte 3\"><\/a><\/p>\n<p>Scrittura manuale di un caricatore automatico (senza utilizzare PSR4).<\/p>\n<p>Invece, un caricatore automatico pu\u00f2 prendere il codice che abbiamo ogni volta che, diciamo, istanziamo una classe e quindi carichiamo automaticamente (da cui il nome) il file senza la necessit\u00e0 di includere manualmente il file.<\/p>\n<h3>L&#8217;analogia<\/h3>\n<p>Mentre un linker analizzer\u00e0 la codebase di un programma e assembler\u00e0 automaticamente il binario, un caricatore automatico avr\u00e0 bisogno di un qualche tipo di configurazione per fargli sapere dove si trovano le classi, come individuare un file sul file system dato il suo spazio dei nomi e il nome della classe, e presto.<\/p>\n<p>Inoltre, ci sono diversi modi in cui questo pu\u00f2 essere fatto a seconda se si sceglie di utilizzare qualcosa come <a href=\"http:\/\/www.php-fig.org\/psr\/psr-4\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PSR-4<\/a> o un&#8217;altra strategia di caricamento. Ma questo va oltre lo scopo di questo post.<\/p>\n<h2>Questo \u00e8 tutto<\/h2>\n<p>L&#8217;idea alla base di tutto questo \u00e8 capire come i linguaggi tipizzati staticamente, che sono spesso &#8211; anche se non sempre &#8211; linguaggi compilati e come digitati dinamicamente &#8211; che spesso non sono compilati (si pensi a JavaScript, PHP, ecc.) &#8211; possano funzionare in modo simile, anche se diversi modi.<\/p>\n<p>In breve:<\/p>\n<ul>\n<li>i linguaggi compilati usano linker,<\/li>\n<li>i linguaggi dinamici utilizzano caricatori automatici.<\/li>\n<\/ul>\n<p>E questo \u00e8 tutto quello che c&#8217;\u00e8 da fare, davvero.<\/p>\n<p>Ma perch\u00e9 \u00e8 importante? Per comprendere i vantaggi del caricamento automatico in WordPress e per avere una base per argomenti pi\u00f9 avanzati, trovo che sia importante capire come e perch\u00e9 facciamo determinate cose che facciamo.<\/p>\n<p>E se non altro, pu\u00f2 aiutarci a essere sviluppatori migliori.<\/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>I linker non sono del tutto diversi dal caricamento automatico in WordPress (e PHP). Ecco come funzionano e perch\u00e9 aiuta a capire come funzionano.<\/p>\n","protected":false},"author":1,"featured_media":223872,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[720,844,865],"tags":[1168],"class_list":["post-234120","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/234120","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=234120"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/234120\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/223872"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=234120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=234120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=234120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}