{"id":230175,"date":"2022-11-14T12:35:00","date_gmt":"2022-11-14T09:35:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230175"},"modified":"2022-11-14T12:37:57","modified_gmt":"2022-11-14T09:37:57","slug":"perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/perche-preoccuparsi-del-caricamento-automatico-in-wordpress-parte-1\/","title":{"rendered":"Perch\u00e9 preoccuparsi del caricamento automatico in WordPress, parte 1"},"content":{"rendered":"\n<p>Una delle cose pi\u00f9 semplici che possiamo fare quando lavoriamo sui plugin di WordPress \u00e8 eliminare\u00a0 le istruzioni <strong>require_once<\/strong> o <strong>include_once<\/strong> nel nostro codice.<\/p>\n<p>E perch\u00e8 no? \u00c8 un modo semplice per importare tutti i file o le dipendenze necessari per una determinata classe, renderlo facilmente leggibile e non doversi preoccupare di creare enormi file di codice. Cio\u00e8, ci aiuta a semplificare ci\u00f2 che stiamo scrivendo in modo che siamo in grado di fare in modo che le nostre classi [principalmente o idealmente] facciano bene ci\u00f2 che stanno facendo.<\/p>\n<p>Se hai letto questo sito nell&#8217;ultimo anno o gi\u00f9 di l\u00ec, per\u00f2, sai che sono un fan del caricamento automatico ed \u00e8 qualcosa che penso che chiunque lavori con PHP, indipendentemente dal fatto che tu stia utilizzando WordPress o un&#8217;altra piattaforma, dovrebbe uso.<\/p>\n<p>Ma solleva due domande soprattutto se sei appena agli inizi:<\/p>\n<ol>\n<li>Perch\u00e9 preoccuparsi del caricamento automatico quando ci sono altri modi per gestire le dipendenze di caricamento?<\/li>\n<li>In che modo il caricamento automatico si confronta con i linguaggi compilati?<\/li>\n<\/ol>\n<p>Quindi ho pensato che sarebbe valsa la pena rispondere a questo nei prossimi due post.<\/p>\n<h2>Perch\u00e9 preoccuparsi del caricamento automatico?<\/h2>\n<p>Il corto \u00e8 questo:<\/p>\n<ol>\n<li><strong>require_once<\/strong> e <strong>include_once<\/strong> possono portare a codice difficile da eseguire il debug,<\/li>\n<li>\u00e8 difficile rintracciare il codice.<\/li>\n<\/ol>\n<p>Ma come mai?<\/p>\n<h3>1 Il debug \u00e8 difficile<\/h3>\n<p>Quando si scrive codice, se qualcosa \u00e8 certo, \u00e8 che ci sar\u00e0 qualcosa che non funzioner\u00e0 come previsto. \u00c8 nella natura di ci\u00f2 che facciamo, giusto?<\/p>\n<p>Quindi, quando arriva il momento di eseguire il debug del codice, tutti abbiamo le nostre strategie.<\/p>\n<ul>\n<li>alcuni di noi scelgono di usare <strong>echo<\/strong> o <strong>var_dump<\/strong> per tracciare il codice,<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar-console\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">usa un plugin<\/a> in WordPress,<\/li>\n<li>altri usano un debugger.<\/li>\n<\/ul>\n<p>Sebbene questo post non riguardi come eseguire il debug, \u00e8 il fatto che dobbiamo eseguire il debug. Quindi, se sappiamo che dovremo farlo, non dovremmo renderlo il pi\u00f9 facile possibile con noi stessi?<\/p>\n<p>PHP \u00e8 un linguaggio tipizzato dinamicamente, quindi ci sono molte cose, in generale, di cui ci occupiamo ogni volta che scriviamo il codice. Cio\u00e8, alcune cose vengono dedotte o forzate ogni volta che viene eseguito il codice.<\/p>\n<p>Ad esempio, supponi di lavorare con una stringa e di confrontarla con un numero. L&#8217;interprete far\u00e0 il possibile per indovinare cosa stai facendo (stai cercando di analizzare la stringa in un numero intero o viceversa?) e quindi lavorare con quello.<\/p>\n<p>Lavorare solo con le variabili pu\u00f2 essere un esercizio di precisione perch\u00e9 vogliamo che il nostro codice venga letto come intendiamo. Perch\u00e9 lasciare all&#8217;interprete il compito di indovinare cosa intendiamo? E se l&#8217;interprete deve fare un lavoro extra, gli umani lo fanno sicuramente.<\/p>\n<p>A tal fine, se sappiamo che verranno introdotti bug e sappiamo che ci sono modi per scrivere codice pi\u00f9 pulito, perch\u00e9 non dovremmo farlo?<\/p>\n<h3>2 Il tracciamento \u00e8 difficile (o forse pi\u00f9 difficile?)<\/h3>\n<p>Ma questo ancora non fornisce una ragione per cui dovremmo fare affidamento su qualcosa come un caricatore automatico rispetto a strutture integrate del linguaggio, vero?<\/p>\n<p>Considera questo: supponiamo che stai guardando un file cercando di trovare un bug e ti imbatti in una funzione che ha del codice, usa <strong>include_once<\/strong>, quindi usa un altro codice.<\/p>\n<p>Ci\u00f2 significa che devi leggere il codice, tenerlo archiviato mentalmente, saltare in un altro file, comprendere quel codice, quindi tornare al file originale. E questo presuppone che anche il secondo file non <strong>includa<\/strong> o <strong>richieda<\/strong> altri file.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165694-61e786c8874b7.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-165694-61e786c8874b7.jpg\" alt=\"Perch\u00e9 preoccuparsi del caricamento automatico in WordPress, parte 1\"><\/a><\/p>\n<p>Si chiama codice spaghetti per un motivo.<\/p>\n<p>Detto questo, puoi vedere la difficile situazione che questo introduce quando scegli di annidare questo codice nel resto del tuo programma. In breve, hai annidato l&#8217;inclusione delle dipendenze che intrinsecamente rende pi\u00f9 difficile tracciare dove qualcosa potrebbe andare storto.<\/p>\n<p>Questo non vuol dire che il caricamento automatico risolva automaticamente questo problema, ma significa che non deve essere cos\u00ec. Invece, puoi scrivere codice che istanzia classi, chiama metodi e quindi esegue codice senza la necessit\u00e0 di includere nulla manualmente.<\/p>\n<h3>Codice pi\u00f9 leggibile e tracciabile<\/h3>\n<p>In questo modo, trovo che ci costringa a scrivere codice pi\u00f9 pulito, probabilmente pi\u00f9 gestibile. Inoltre, semplifica la scrittura di codice che possiamo tracciare pi\u00f9 facilmente e che \u00e8 pi\u00f9 facile sfruttare con un debugger.<\/p>\n<p>Cio\u00e8, possiamo impostare punti di interruzione in determinati punti del nostro codice, fare in modo che il debugger ci porti automaticamente nella classe che viene invocata e tornare indietro nella funzione che lo stava chiamando.<\/p>\n<p>Questo non significa che non possa essere fatto in nessun altro modo, ma i vantaggi superano di gran lunga le alternative. E, naturalmente, 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>Ma questo \u00e8 ci\u00f2 che verr\u00e0 trattato nella seconda parte della serie.<\/p>\n<h2>Altra lettura<\/h2>\n<p>Il mio post su <a href=\"https:\/\/wordpress.mediadoma.com\/it\/spazi-dei-nomi-e-caricamento-automatico-in-wordpress\/\" title=\"Namespaces e Autoloading in WordPress\">Namespaces e Autoloading in WordPress<\/a>, cos\u00ec come il <a href=\"https:\/\/github.com\/tommcfarlin\/simple-autoloader-for-wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Simple Autoloader per WordPress,<\/a> sono altre due risorse che trovo ovviamente correlate a questo particolare post. Quindi, se hai tempo, dai un&#8217;occhiata (e non esitare ad aprire un problema o una richiesta pull sul semplice progetto di caricamento automatico).<\/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>Ho gi\u00e0 parlato e scritto del caricamento automatico in WordPress, ma trovo ancora che i vantaggi del caricamento automatico aiutino a scrivere codice organizzato e tracciabile.<\/p>\n","protected":false},"author":1,"featured_media":165695,"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-230175","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\/230175","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=230175"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230175\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165695"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}