{"id":230059,"date":"2022-11-11T10:52:00","date_gmt":"2022-11-11T07:52:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230059"},"modified":"2022-11-09T19:54:16","modified_gmt":"2022-11-09T16:54:16","slug":"compositore-per-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/compositore-per-wordpress-parte-1\/","title":{"rendered":"Compositore per WordPress, parte 1"},"content":{"rendered":"\n<p>Ok, quindi dopo aver parlato di tutte le varie librerie che possono aiutare a migliorare la qualit\u00e0 del codice del tuo lavoro, solleva ancora una domanda:<\/p>\n<p>Come possiamo far funzionare questi progetti sulla nostra base di codice?<\/p>\n<p>In breve, richiede <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>. Se non l&#8217;hai mai usato, ne ho gi\u00e0 <a href=\"https:\/\/tommcfarlin.com\/setting-php-and-composer-in-mamp\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">scritto brevemente<\/a> prima, ma intendo fornire le basi di ci\u00f2 che ti serve per iniziare a usarlo e le librerie di cui sopra nel tuo lavoro.<\/p>\n<p>Sia in questo post che nel prossimo, condivider\u00f2 come impostare tutto localmente nella forma pi\u00f9 semplice e quindi come si integra con Git in modo che tu possa iniziare a usarlo nella tua quotidianit\u00e0.<\/p>\n<h2>Configurazione del compositore per WordPress<\/h2>\n<p>Ci sono molte informazioni che possono (e direi che dovrebbero entrare in un file per Composer). Ci\u00f2 include cose come informazioni sull&#8217;autore, PSR, informazioni, ecc. Ma questo va davvero oltre lo scopo di questo post. Invece, voglio condividere il minimo indispensabile su come ottenere e configurare queste informazioni.<\/p>\n<h3>Una directory di esempio<\/h3>\n<p>Supponiamo che per un momento stai per iniziare a lavorare su un plugin o qualcosa relativo a WordPress che richieder\u00e0 le varie librerie discusse nella serie precedente. E quando imposti la directory per questo, avrai pochissimi file. Possano un paio di file PHP vuoti, risorse, ecc. Forse sar\u00e0 simile a questo:<\/p>\n<p>Certo, l&#8217;esempio sopra \u00e8 gi\u00e0 un po&#8217; pi\u00f9 avanti di come potrebbe essere il tuo lavoro perch\u00e9:<\/p>\n<ul>\n<li>C&#8217;\u00e8 un <code>composer.lock<\/code>\u00a0file che mostra che Composer \u00e8 stato eseguito,<\/li>\n<li>Ha una <code>vendor<\/code>\u00a0directory che mostra che le librerie sono state installate tramite Composer,<\/li>\n<li>C&#8217;\u00e8 un <code>grumphp.yml<\/code>\u00a0file che definisce come GrumPHP dovrebbe funzionare (e lo tratter\u00f2 pi\u00f9 avanti) durante lo sniffing del codice.<\/li>\n<\/ul>\n<p>Ma il succo di quanto sopra \u00e8 lo stesso: hai <code>composer.json<\/code>e definisce e include tutto ci\u00f2 di cui abbiamo bisogno in base al post precedente. Allora come lo configuriamo?<\/p>\n<h3>Configurare il compositore<\/h3>\n<p>Innanzitutto, devi avere un&#8217;idea di come strutturare il tuo plug-in. Ad esempio, ho una configurazione di plug-in come questa:<\/p>\n<ul>\n<li>Tutti i file PHP risiedono nella <code>src<\/code>\u00a0directory,<\/li>\n<li>Tutti i file CSS, JavaScript, immagini, ecc. si trovano nella <code>assets<\/code>\u00a0directory,<\/li>\n<li>La <code>vendor<\/code>\u00a0directory \u00e8 per le cose che sono installate tramite Composer,<\/li>\n<li><code>views<\/code>\u00a0\u00e8 ci\u00f2 che viene utilizzato nel front-end del progetto.<\/li>\n<\/ul>\n<p>Per esempio:<\/p>\n<\/p>\n<p>In secondo luogo, nella directory in questione, ti consigliamo di creare un file chiamato <code>composer.json<\/code>. Questo pu\u00f2 essere fatto tramite Terminale semplicemente emettendo un <code>touch<\/code>\u00a0comando, oppure puoi crearlo nel tuo IDE.<\/p>\n<p>La cosa importante da togliere a questo \u00e8 che c&#8217;\u00e8 una <code>src<\/code>\u00a0directory perch\u00e9 quella \u00e8 la directory che include i nostri file PHP ed \u00e8 la directory che vogliamo annusare.<\/p>\n<h3>Un file compositore di base<\/h3>\n<p>Detto questo, ecco un <code>composer.json<\/code>file di base che puoi utilizzare nei tuoi progetti in base alle serie precedenti e in base a ci\u00f2 che \u00e8 <a href=\"https:\/\/gist.github.com\/tommcfarlin\/60ac0e1fba9fa152fc57622e3866d6dc\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">condiviso<\/a> di seguito:<\/p>\n<pre><code>{\n  \"name\": \"pressware\/demo-wordpress-plugin\",\n  \"description\": \"This file is used to show how to configure a WordPress plugin using Composer.\",\n  \"autoload\": {\n    \"psr-4\": {\n      \"Pressware\": \"src\/\"\n    }\n  },\n  \"require-dev\": {\n    \"phpro\/grumphp\": \"^0.11.6\",\n    \"phpmd\/phpmd\": \"^2.6\",\n    \"phpunit\/phpunit\": \"5.7.21\",\n    \"nikic\/php-parser\": \"^3.0\",\n    \"sebastian\/phpcpd\": \"^3.0\",\n    \"povils\/phpmnd\": \"^1.1\",\n    \"squizlabs\/php_codesniffer\": \"^3.0\",\n    \"jakub-onderka\/php-parallel-lint\": \"^0.9.2\",\n    \"sensiolabs\/security-checker\": \"^4.0\"\n  }\n}<\/code><\/pre>\n<p>Guardando il file sopra, ecco come analizzarlo:<\/p>\n<ol>\n<li>Le righe 2 e 3 danno un po&#8217; di descrizione di cosa tratta il plugin. Queste sono anche altre aree in questo file per fornire maggiori informazioni su ci\u00f2 che deve essere fatto.<\/li>\n<li>Le righe da 4 a 8 sono importanti perch\u00e9 spiegano che stiamo usando <a href=\"http:\/\/www.php-fig.org\/psr\/psr-4\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PSR-4<\/a> per il caricamento automatico e che tutti i file rientrano nello spazio dei nomi di primo livello <code>Pressware<\/code>e che i file PHP si trovano nella <code>src<\/code>\u00a0directory.<\/li>\n<li>Le righe 9 \u2013 18 coprono tutti i fascicoli trattati nella serie precedente.<\/li>\n<\/ol>\n<p>Quindi, immetti il \u200b\u200bseguente comando nel tuo terminale:<\/p>\n<p><code>$ composer install<\/code><\/p>\n<p>E questo installer\u00e0 questi pacchetti.<\/p>\n<h2>Che dire dei commit?<\/h2>\n<p>Per assicurarti di eseguire correttamente lo snuffing e la gestione dei commit, \u00e8 importante configurare GrumPHP in modo che guardi i file. Ma ci dar\u00f2 un&#8217;occhiata nel prossimo post.<\/p>\n<p>Nel frattempo, forse questa \u00e8 una buona opportunit\u00e0 per configurare un plug-in demo ed esercitarsi con il codice sopra. Prepararlo correttamente la prima volta pu\u00f2 essere difficile. Fortunatamente, molti degli errori di output sono davvero facili da capire, quindi \u00e8 relativamente semplice risolverli.<\/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>Questa \u00e8 la prima di una serie in due parti su come configurare Composer per lo sviluppo di WordPress in modo da poter scrivere codice di qualit\u00e0 superiore nel tuo lavoro).<\/p>\n","protected":false},"author":1,"featured_media":166003,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[751,1019,720],"tags":[1168],"class_list":["post-230059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-open-source-projektmanagement-3","category-siti-utili","category-sviluppatore","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230059","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=230059"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230059\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/166003"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}