{"id":230032,"date":"2022-11-10T13:21:00","date_gmt":"2022-11-10T10:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230032"},"modified":"2022-11-10T13:25:33","modified_gmt":"2022-11-10T10:25:33","slug":"librerie-per-plugin-di-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/librerie-per-plugin-di-wordpress-parte-1\/","title":{"rendered":"Librerie per plugin di WordPress, parte 1"},"content":{"rendered":"\n<p>Pi\u00f9 lavori con WordPress, specialmente se utilizzi strumenti come <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> e simili, pi\u00f9 probabilmente troverai determinate librerie, strumenti e cose simili che costituiscono le basi dei progetti su cui lavori.<\/p>\n<p>A volte potresti trovarli guardando il codice di altre persone, forse li troverai navigando su GitHub, o forse <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">qualcuno con<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cui<\/a> lavori suggerir\u00e0 una libreria (o alcune) a seconda di un progetto.<\/p>\n<p>Personalmente, ho avuto l&#8217;esperienza di tutto quanto sopra, e pi\u00f9 lavoro alla creazione di soluzioni per me stesso o per altri, pi\u00f9 mi ritrovo a creare le stesse basi per ogni progetto (che in genere \u00e8 un plug-in di qualche tipo) .<\/p>\n<h2>Librerie per plugin di WordPress<\/h2>\n<p>A tal fine, ho pensato che valesse la pena condividere le librerie che utilizzo durante la creazione di plugin per WordPress. Il contenuto sar\u00e0 distribuito su alcuni post per mantenerli brevi e mirati, ma forse troverai qualcosa che non hai utilizzato in precedenza (o che migliorer\u00e0 il tuo uso attuale).<\/p>\n<h3><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Unit\u00e0 PHP<\/a><\/h3>\n<p>Chiunque abbia scritto codice in qualsiasi linguaggio di programmazione ha probabilmente familiarit\u00e0 con qualsiasi tipo di libreria *Unit. In breve, \u00e8 un modo per scrivere facilmente unit test.<\/p>\n<p>Dalla <a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">homepage del progetto<\/a> :<\/p>\n<blockquote>\n<p>PHPUnit \u00e8 un framework di test orientato ai programmatori per PHP. \u00c8 un&#8217;istanza dell&#8217;architettura xUnit per i framework di unit test.<\/p>\n<\/blockquote>\n<p>Non sono una persona che si iscrive necessariamente alla copertura del codice al 100% (e questo \u00e8 un argomento per un altro post), ma se scriverai unit test, allora questa \u00e8 la libreria de facto per unit test del tuo codice.<\/p>\n<h3><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/h3>\n<p>Durante quest&#8217;anno, <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> \u00e8 diventata senza dubbio la mia libreria preferita (sebbene sia migliorata da librerie aggiuntive che tratter\u00f2 in questa serie di post).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78ddea0549.png\" 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-166075-61e78ddea0549.png\" alt=\"Librerie per plugin di WordPress, parte 1\"><\/a><\/p>\n<p>Ne ho parlato in altri post. Sebbene si descriva come uno &quot;strumento per la qualit\u00e0 del codice&quot;, non puoi davvero fare a meno di vedere i vantaggi finch\u00e9 non lo colleghi per guardare il tuo codice prima di provare a impegnarlo in un repository.<\/p>\n<p>La descrizione pi\u00f9 lunga \u00e8:<\/p>\n<blockquote>\n<p>Se i test falliscono, non sarai in grado di confermare le modifiche. Questo pratico strumento non solo migliorer\u00e0 la tua base di codice, ma insegner\u00e0 anche ai tuoi colleghi a scrivere codice migliore seguendo le migliori pratiche che hai determinato come squadra.<\/p>\n<\/blockquote>\n<p>E, proprio come se avessi utilizzato qualsiasi monitor di <a href=\"https:\/\/wordpress.mediadoma.com\/it\/utilizzo-dei-psr-rispetto-agli-standard-di-codifica-di-wordpress\/\" title=\"standard di codifica\">standard di codifica<\/a> nel tuo IDE, questa \u00e8 una di quelle cose che all&#8217;inizio pu\u00f2 essere frustrante da usare.<\/p>\n<p>Ma man mano che lo impari, diventa pi\u00f9 facile sapere cosa verr\u00e0 contrassegnato in modo da iniziare automaticamente a scrivere codice con un livello di qualit\u00e0 pi\u00f9 elevato.<\/p>\n<h3><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/h3>\n<p><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> (abbreviazione di PHP Mess Detector) funziona bene in combinazione con GrumPHP in quanto pu\u00f2 elaborare il codice prima di eseguirne il commit in un repository.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78de324f34.png\" 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-166075-61e78de324f34.png\" alt=\"Librerie per plugin di WordPress, parte 1\"><\/a><\/p>\n<p>Il progetto si descrive come:<\/p>\n<blockquote>\n<p>Richiede una determinata base di codice sorgente PHP e cerca diversi potenziali problemi all&#8217;interno di tale sorgente.<\/p>\n<\/blockquote>\n<p>Come con molte librerie simili, questa in particolare pu\u00f2 configurare una serie di regole in modo da poter attivare e disattivare facilmente le cose in base a ci\u00f2 che tu o il tuo team preferite.<\/p>\n<h3><a href=\"https:\/\/github.com\/nikic\/PHP-Parser\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Parser PHP<\/a><\/h3>\n<p>L&#8217;idea di avere una libreria di parser PHP configurata per analizzare il tuo codice sembra un po&#8217; meta, giusto? Voglio dire, hai il runtime PHP che lo fa e anche molti IDE lo fanno, ma funziona in un modo leggermente diverso.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78de6eec7f.png\" 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-166075-61e78de6eec7f.png\" alt=\"Librerie per plugin di WordPress, parte 1\"><\/a><\/p>\n<p>Dal repository:<\/p>\n<blockquote>\n<p>Questo \u00e8 un parser da PHP 5.2 a PHP 7.1 scritto in PHP. Il suo scopo \u00e8 semplificare l&#8217;analisi e la manipolazione del codice statico.<\/p>\n<\/blockquote>\n<p>Per coloro che hanno familiarit\u00e0 con il funzionamento dei linguaggi di programmazione (e quindi delle grammatiche), l&#8217;idea di fare <a href=\"https:\/\/en.wikipedia.org\/wiki\/Static_program_analysis\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">un&#8217;analisi statica<\/a> sul codice avr\u00e0 senso.<\/p>\n<p>Indipendentemente da ci\u00f2, questa \u00e8 un&#8217;altra libreria che aiuta a migliorare la qualit\u00e0 del codice riducendo la complessit\u00e0 del codice.<\/p>\n<h2>E c&#8217;\u00e8 dell&#8217;altro<\/h2>\n<p>Alla fine della serie, condivider\u00f2 come incorporare tutti questi in un <code>composer.json<\/code>file che puoi utilizzare nel tuo progetto.<\/p>\n<p>Quando stai lavorando a una soluzione per un client, potresti dover modificare le versioni di ciascuno di questi strumenti, ma scoprirai che la maggior parte di essi offre supporto a partire da PHP5.6 e fino a PHP7.1.<\/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>Il primo post di una serie sulle librerie per i plugin di WordPress che io e il mio team utilizziamo quando lavoriamo su soluzioni di alta qualit\u00e0 per gli altri.<\/p>\n","protected":false},"author":1,"featured_media":166076,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,1019,720,865],"tags":[1168],"class_list":["post-230032","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-siti-utili","category-sviluppatore","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230032","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=230032"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230032\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/166076"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}