{"id":538,"date":"2026-07-04T17:04:00","date_gmt":"2026-07-04T15:04:00","guid":{"rendered":"https:\/\/aarkly.com\/?p=538"},"modified":"2026-08-08T12:25:12","modified_gmt":"2026-08-08T10:25:12","slug":"modern-wordpress-development-php-8-3-features","status":"publish","type":"post","link":"https:\/\/aarkly.com\/it\/modern-wordpress-development-php-8-3-features\/","title":{"rendered":"Sviluppo WordPress Moderno: Funzionalit\u00e0 PHP 8.3+ che Dovresti Usare"},"content":{"rendered":"<p class=\"wp-block-paragraph\">WordPress ha la reputazione di essere conservatore sulle versioni di PHP. Per anni, il requisito minimo di PHP \u00e8 rimasto molto indietro rispetto alle ultime release, e gli sviluppatori di plugin dovevano scrivere codice che funzionasse su PHP 5.6. Ma quei giorni sono finiti. WordPress ora gira su PHP 8.3+ per la maggior parte dei siti, e l'ecosistema ha pienamente abbracciato le funzionalit\u00e0 PHP moderne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se scrivi ancora codice WordPress alla maniera di PHP 7.4 \u2014 con array lunghi, match statement goffi e dichiarazioni di tipo verbose \u2014 ti stai perdendo funzionalit\u00e0 che rendono il tuo codice pi\u00f9 pulito, pi\u00f9 veloce e meno soggetto a errori.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questa guida copre le funzionalit\u00e0 di PHP 8.3 e delle prime versioni di 8.4 che contano di pi\u00f9 per lo sviluppo WordPress, con esempi pratici che puoi usare nei tuoi plugin oggi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Argomenti Nominati: Niente Pi\u00f9 Confusione Posizionale<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Gli argomenti nominati ti permettono di passare argomenti a una funzione specificando il nome del parametro, indipendentemente dalla loro posizione. Questo \u00e8 trasformativo per lo sviluppo WordPress perch\u00e9 molte funzioni core accettano lunghe liste di parametri opzionali.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Invece di questo codice PHP 7.4 dove devi passare valori null per i parametri che non vuoi impostare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>register_post_type('portfolio', array(\n    'labels' =&gt; $labels,\n    'public' =&gt; true,\n    'has_archive' =&gt; true,\n    'supports' =&gt; array('title', 'editor', 'thumbnail'),\n    'menu_icon' =&gt; 'dashicons-portfolio',\n));<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ora puoi usare gli argomenti nominati per essere esplicito su cosa fa ogni parametro. Il codice diventa auto-documentante e puoi saltare i parametri che non ti servono senza contare le posizioni.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Match Expression: Pi\u00f9 Pulito di Switch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L'espressione match \u00e8 un sostituto pi\u00f9 potente e sicuro delle istruzioni switch. A differenza di switch, match fa un confronto di tipo stretto (===), restituisce un valore e genera un errore se nessun ramo corrisponde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nello sviluppo di plugin WordPress, match \u00e8 perfetto per il routing, la gestione degli stati e la logica condizionale che altrimenti richiederebbe lunghe catene if-elseif.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Propriet\u00e0 Readonly: Immutabili per Design<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le propriet\u00e0 readonly, introdotte in PHP 8.1 e migliorate in 8.3, ti permettono di dichiarare propriet\u00e0 di classe che possono essere impostate una sola volta. Questo \u00e8 prezioso per i value object e i DTO che dovrebbero essere immutabili dopo la costruzione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In PHP 8.3, ora puoi dichiarare propriet\u00e0 readonly su classi che non sono state dichiarate readonly, dandoti pi\u00f9 flessibilit\u00e0. Puoi anche clonare le propriet\u00e0 readonly, cosa che non era possibile in 8.1. Questo rende pratico l'uso di readonly nello sviluppo WordPress per cose come oggetti di configurazione, risposte API e contenitori di impostazioni.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Miglioramenti al Sistema dei Tipi<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.3 e 8.4 continuano a rafforzare il sistema dei tipi, rendendo pi\u00f9 facile scrivere codice corretto per costruzione:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Costanti di classe tipizzate<\/strong> \u2014 Ora puoi dichiarare il tipo delle costanti di classe, prevenendo disallineamenti di tipo accidentali.<\/li>\n<li><strong>Propriet\u00e0 hooks (PHP 8.4)<\/strong> \u2014 Una nuova funzionalit\u00e0 importante che ti permette di aggiungere hook get\/set alle propriet\u00e0 senza rompere l'incapsulamento. Questo riduce il codice boilerplate per le propriet\u00e0 calcolate e la validazione.<\/li>\n<li><strong>Oggetti lazy (PHP 8.4)<\/strong> \u2014 Supporto per l'inizializzazione lazy senza richiedere una libreria proxy. Utile per gli oggetti WordPress costosi che non dovrebbero essere creati finch\u00e9 non servono.<\/li>\n<li><strong>Miglioramenti all'attributo Deprecated<\/strong> \u2014 Migliore supporto per marcare le funzionalit\u00e0 deprecate con messaggi dettagliati.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Miglioramenti delle Prestazioni<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ogni versione PHP porta significativi miglioramenti delle prestazioni. PHP 8.3 \u00e8 approssimativamente il 20-30% pi\u00f9 veloce di PHP 8.0 per i carichi di lavoro WordPress, e PHP 8.4 offre ulteriori guadagni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I miglioramenti delle prestazioni derivano dalle rifiniture della compilazione JIT, da un migliore comportamento dell'opcache e dalle ottimizzazioni delle strutture dati interne. Per un sito WordPress su PHP 8.3 rispetto a PHP 7.4, la differenza pu\u00f2 essere 2-3 volte nel tempo di generazione della pagina \u2014 un upgrade di prestazioni gratuito che richiede solo il cambio di versione PHP nel pannello di controllo del tuo hosting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Adottare PHP Moderno nei Plugin WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se costruisci un plugin per la directory WordPress.org, devi essere consapevole della versione PHP minima dei tuoi utenti. Dal 2026, oltre l'80% dei siti WordPress gira su PHP 8.0 o superiore, e WordPress stesso raccomanda PHP 8.3+. Impostare la versione minima di PHP del tuo plugin a 8.0 \u00e8 ragionevole, e puntare a 8.2 come baseline ti d\u00e0 accesso alla maggior parte delle funzionalit\u00e0 moderne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco una strategia di adozione pratica:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Imposta l'header \u00abRequires PHP\u00bb del tuo plugin a 8.0 o superiore.<\/li>\n<li>Inizia a usare gli argomenti nominati e le match expression \u2014 funzionano in PHP 8.0 e sono sicuri per un'ampia compatibilit\u00e0.<\/li>\n<li>Usa le propriet\u00e0 readonly per i value object e le classi di configurazione.<\/li>\n<li>Adotta le costanti di classe tipizzate e le propriet\u00e0 hooks (PHP 8.3+) per il nuovo sviluppo.<\/li>\n<li>Esegui PHPStan o Psalm al livello pi\u00f9 alto per individuare i problemi di tipo prima che raggiungano la produzione.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Il punto fondamentale<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il PHP moderno \u00e8 una lingua diversa dal PHP del 2018. \u00c8 pi\u00f9 veloce, pi\u00f9 sicuro e pi\u00f9 espressivo. Gli sviluppatori WordPress che abbracciano queste funzionalit\u00e0 scrivono codice pi\u00f9 facile da leggere, pi\u00f9 difficile da rompere e con prestazioni migliori sotto carico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se non hai aggiornato il tuo ambiente di sviluppo a PHP 8.3 o 8.4, fallo oggi. Poi inizia ad adottare una nuova funzionalit\u00e0 alla volta. Gli argomenti nominati e le match expression sono i punti di partenza pi\u00f9 facili \u2014 richiedono modifiche minime e offrono miglioramenti immediati di leggibilit\u00e0.<\/p>","protected":false},"excerpt":{"rendered":"<p>Una guida pratica alle funzionalit\u00e0 di PHP 8.3 e 8.4 che ogni sviluppatore WordPress dovrebbe usare, dagli argomenti nominati alle propriet\u00e0 readonly fino agli hook di propriet\u00e0.<\/p>","protected":false},"author":3,"featured_media":1245,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ai_primary_source":"","visibility_scope":"","ai_summary":"","ai_intent":"","ai_related_resources":"","ai_priority":0,"ai_entity_type":"","ai_is_based_on":"","ai_citations":"","ai_mentions":"","ai_speakable_selector":"","ai_chunk_hints":"","footnotes":""},"categories":[7,6],"tags":[44,27,35],"ai_visibility":[],"class_list":["post-538","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development","category-wordpress","tag-api-first","tag-developer-to-founder","tag-saas"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/comments?post=538"}],"version-history":[{"count":2,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/posts\/538\/revisions"}],"predecessor-version":[{"id":1359,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/posts\/538\/revisions\/1359"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/media\/1245"}],"wp:attachment":[{"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/media?parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/categories?post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/tags?post=538"},{"taxonomy":"ai_visibility","embeddable":true,"href":"https:\/\/aarkly.com\/it\/wp-json\/wp\/v2\/ai_visibility?post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}