{"id":66424,"date":"2023-03-07T11:40:00","date_gmt":"2023-03-07T10:40:00","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=66424&#038;preview=true&#038;preview_id=66424"},"modified":"2023-06-12T09:38:47","modified_gmt":"2023-06-12T08:38:47","slug":"passare-a-php-8","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/","title":{"rendered":"Passare a PHP 8.x in Quattro Step &#8211; Intervista a Juliette Reinders Folmer"},"content":{"rendered":"<p>Aggiornare un sito, un plugin o un tema WordPress a una nuova versione di PHP \u00e8 un&#8217;operazione che si ripete regolarmente. Ma come farlo nel modo corretto? Come assicurarsi di non trascurare nulla? Esiste un piano d&#8217;azione da seguire?<\/p>\n<p>In questo articolo risponderemo a queste domande (e ad altre ancora) e vedremo cosa \u00e8 necessario per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.<\/p>\n<p>Tutto ci\u00f2 si basa su un&#8217;intervista che abbiamo condotto con Juliette Reinders Folmer, esperta di PHP. Juliette dedica la maggior parte della sua giornata alla programmazione e a tutto ci\u00f2 che la riguarda, concentrandosi principalmente su progetti open-source, tra cui WordPress.<\/p>\n<p>E voi siete curiosi di conoscere il nostro piano d&#8217;azione? Allora iniziamo subito!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>PHP 8.x &#8211; Cosa \u00c8 Cambiato<\/h2>\n<p>Per una panoramica dei cambiamenti, consigliamo di consultare gli articoli qui sotto:<\/p>\n<ul>\n<li>Note di rilascio per <a href=\"https:\/\/www.php.net\/releases\/8.0\/en.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.0<\/a> e <a href=\"https:\/\/www.php.net\/releases\/8.1\/en.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.1<\/a><\/li>\n<li>Guida alla migrazione per <a href=\"https:\/\/www.php.net\/manual\/en\/migration80.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.0<\/a> e <a href=\"https:\/\/www.php.net\/manual\/en\/migration81.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.1<\/a><\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/23\/wordpress-and-php-8-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress e PHP 8.0<\/a> e lo <a href=\"https:\/\/make.wordpress.org\/core\/2022\/01\/10\/wordpress-5-9-and-php-8-0-8-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">stato attuale<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/it\/blog\/php-8\/\">Cosa c&#8217;\u00e8 di nuovo in PHP 8.0<\/a> e <a href=\"https:\/\/kinsta.com\/it\/blog\/php-8-1\/\">PHP 8.1<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/it\/blog\/php-8-2\/\">Le Novit\u00e0 di PHP 8.2<\/a> e <a href=\"https:\/\/www.php.net\/manual\/en\/migration82.php\">guida alla migrazione a PHP 8.2<\/a><\/li>\n<\/ul>\n<p>Dopo aver letto questi articoli, saprete cosa \u00e8 cambiato in PHP 8.x e cosa dovete fare per far funzionare correttamente i vostri progetti PHP.<\/p>\n<p>Se non siete sicuri di quale sia il modo migliore per iniziare, nella conversazione con Juliette ne abbiamo parlato nel dettaglio e in questo articolo vi spiegheremo nel modo pi\u00f9 esaustivo possibile come passare a PHP 8.x.<\/p>\n<p>E spiegheremo anche, e in modo dettagliato, come eseguire diverse operazioni in <a href=\"https:\/\/kinsta.com\/it\/mykinsta\/\">MyKinsta<\/a>, il nostro pannello di controllo proprietario dove gestire tutti i vostri siti WordPress, le vostre applicazioni e i vostri database.<\/p>\n<h2>Passare a PHP 8.x: Come Iniziare<\/h2>\n<p>Passare a PHP 8.x sembra semplice, e tecnicamente lo \u00e8. Molti host permettono di specificare la versione di PHP che si vuole usare per il sito web nel pannello di amministrazione. Su Kinsta, il <a href=\"https:\/\/kinsta.com\/it\/changelog\/php-8\/\">cambio di versione di PHP<\/a> richiede un solo clic nel cruscotto di MyKinsta.<\/p>\n<p>Ma prima di procedere, ci sono alcune cose da verificare:<\/p>\n<ul>\n<li>Se avete costruito il vostro sito WordPress con temi e plugin standard, senza avere grandi conoscenze di PHP, affidatevi a una persona esperta di sviluppo o a un&#8217;agenzia per verificare se il vostro sito \u00e8 adatto a funzionare con PHP 8.x. State cercando una terza parte che possa aiutarvi? Allora consultate la <a href=\"https:\/\/kinsta.com\/it\/partner\/\">nostra pagina dei Partner<\/a> che elenca diverse aziende affidabili a cui chiedere assistenza.<\/li>\n<li>Se il vostro sito WordPress \u00e8 stato realizzato da un soggetto esterno, uno sviluppatore o un&#8217;agenzia, contattateli per sapere se il vostro sito pu\u00f2 funzionare con PHP 8.x.<\/li>\n<li>Se avete costruito il vostro sito WordPress, per esempio con un tema personalizzato o con plugin sviluppati da voi, vi proponiamo un piano d&#8217;azione.<\/li>\n<\/ul>\n<p>Se il vostro sito rientra in una delle prime due categorie, vi invitiamo a leggere il resto dell&#8217;articolo, ma non vi consigliamo di iniziare a testare da soli la compatibilit\u00e0 con PHP 8 del vostro sito. Lasciatelo fare ai professionisti.<\/p>\n<p>Qualunque sia la vostra scelta, vi consigliamo di non passare il vostro sito live a PHP 8 e &#8220;vedere se funziona&#8221;. Siete curiosi di sapere come sar\u00e0 il vostro sito e non vedete l&#8217;ora di vederlo funzionare con PHP 8? Allora iniziate a fare dei test in un ambiente di staging. Un buon host vi permetter\u00e0 di creare facilmente <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-staging\/\">un ambiente di staging<\/a>.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Creare un ambiente di staging con Kinsta \u00e8 facile.<\/p>\n<p>In <a href=\"https:\/\/my.kinsta.com\/?lang=it?lang=en\">MyKinsta<\/a>, fate clic su <strong>Siti WordPress<\/strong> nella navigazione a sinistra. A questo punto vedrete un elenco dei vostri siti\/installazioni WordPress. Scegliete il sito per il quale volete creare un ambiente di staging, fate clic sul <strong>selettore di ambienti<\/strong> accanto al nome del sito e scegliete <strong>Crea un nuovo ambiente<\/strong> dal menu a tendina. Nel modale\/pop-up <strong>Crea un nuovo ambiente<\/strong> che appare, date un nome all&#8217;ambiente, scegliete <strong>Ambiente predefinito<\/strong> e fate clic sul pulsante <strong>Crea un nuovo ambiente<\/strong>.<\/p>\n<p>Successivamente, vi verr\u00e0 chiesto di scegliere l&#8217;ambiente che volete creare. Scegliete l&#8217;opzione 1, <strong>Clona un ambiente esistente<\/strong>. A questo punto, fate clic sul pulsante <strong>Crea un nuovo ambiente<\/strong> e inizier\u00e0 la creazione del nuovo ambiente. L&#8217;operazione potrebbe richiedere alcuni minuti. Una volta completato il processo, potrete scegliere il nuovo ambiente di staging predefinito dal menu a tendina del <strong>selettore di ambienti<\/strong> accanto al nome del sito.<\/p>\n<p>Per saperne di pi\u00f9 su come <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/ambienti-di-staging\/\">creare un ambiente di staging<\/a>.<\/p>\n<\/aside>\n\n<figure id=\"attachment_147928\" aria-describedby=\"caption-attachment-147928\" style=\"width: 2864px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147928 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/mykinsta-create-new-environment-eng0.png\" alt=\"Schermata di MyKinsta e dell\u2019opzione per creare un nuovo ambiente\" width=\"2864\" height=\"968\"><figcaption id=\"caption-attachment-147928\" class=\"wp-caption-text\">MyKinsta &#8211; Creare un nuovo ambiente<\/figcaption><\/figure>\n<p>Nell&#8217;ambiente di staging potete attivare PHP 8.x e verificare se questo aggiornamento funziona bene con il vostro sito. \u00c8 anche possibile lavorare con una copia locale del vostro sito. Con il nostro <a href=\"https:\/\/kinsta.com\/it\/devkinsta\/\">strumento di sviluppo gratuito DevKinsta<\/a>, potete importare facilmente il vostro sito dalla <a href=\"https:\/\/kinsta.com\/it\/mykinsta\/\">bacheca di MyKinsta<\/a>, dopodich\u00e9 potrete cambiare la versione di PHP in 8.0 o 8.1.<\/p>\n<p>Se non notate alcun problema nell&#8217;ambiente di staging, non significa necessariamente che non ci siano problemi. Il piano d&#8217;azione qui sotto vi spiega perch\u00e9.<\/p>\n<h2>Test di Compatibilit\u00e0 con PHP 8.x: Piano d&#8217;Azione<\/h2>\n<p>Test: questa \u00e8 la parola chiave per un buon software. Anche per i siti web WordPress e i loro componenti, come i temi, i plugin e il core di WordPress, il test \u00e8 il mezzo per garantire che non accadano cose che non volete che accadano.<\/p>\n<p>Un progetto di sviluppo software consiste in gran parte di test. In questo articolo analizziamo nello specifico i test che possono aiutarvi a rendere il passaggio a PHP 8.x senza intoppi. Nel nostro articolo sugli strumenti DevOps, troverete una sezione con una <a href=\"https:\/\/kinsta.com\/it\/blog\/strumenti-devops\/#devops-testtools\">raccolta di strumenti<\/a> che potete usare.<\/p>\n<p>In questo blog post vengono trattati i seguenti tipi di test:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"-1\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<p>Vediamo pi\u00f9 da vicino i diversi tipi di test che possiamo eseguire.<\/p>\n<h3>Analisi Statica (o Test Statici)<\/h3>\n<p>Il primo passo che potete fare come sviluppatore PHP \u00e8 quello di eseguire un&#8217;analisi statica del vostro codice con vari strumenti. L&#8217;analisi statica \u00e8 il processo di analisi del software senza eseguire il codice. Con l&#8217;analisi statica potete rilevare gli errori, individuare i problemi di compatibilit\u00e0 con PHP 8.x, applicare gli standard di codifica (per esempio gli <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/coding-standards\/\" target=\"_blank\" rel=\"noopener noreferrer\">standard di codifica di WordPress<\/a>) e persino modificare e ripulire il codice.<\/p>\n<h4>Strumenti per l&#8217;Analisi Statica<\/h4>\n<p>Potete eseguire un&#8217;analisi statica con diversi strumenti, come per esempio:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\" target=\"_blank\" rel=\"noopener noreferrer\">PHPCompatibility<\/a><\/li>\n<li><a href=\"https:\/\/psalm.dev\/\" target=\"_blank\" rel=\"noopener noreferrer\">Salmo<\/a><\/li>\n<li><a href=\"https:\/\/phpstan.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPStan<\/a><\/li>\n<\/ul>\n<p>Al momento in cui scriviamo, non tutti i controlli di PHP 8.1 sono supportati nell&#8217;ultima versione di PHPCompatibility. I controlli di PHP 8.1 possono essere presenti nella versione di sviluppo, quindi assicuratevi di usare quelli (per ora) quando usate PHPCompatibility per analizzare il vostro progetto e vedere quali errori\/raccomandazioni ci sono.<\/p>\n<p>I controlli di PHP 8.1 saranno presto rilasciati in una nuova versione <em>major<\/em>. Se volete rimanere sempre aggiornati e avete un account GitHub, aprite il <a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\" target=\"_blank\" rel=\"noopener noreferrer\">repository GitHub di PHPCompatibility<\/a> e andate su <strong>Watch<\/strong> -&gt; <strong>Custom<\/strong> -&gt; <strong>Releases<\/strong>, dove potete scegliere di ricevere un avviso quando viene rilasciata una nuova versione.<\/p>\n<p>PHPCompatibility, che testa la compatibilit\u00e0 solo per una particolare versione (o gamma di versioni) di PHP, \u00e8 facile da configurare. I risultati migliori si ottengono eseguendo un <a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions\" target=\"_blank\" rel=\"noopener noreferrer\">testVersion<\/a>, per esempio 8.0+ (dalla 8.0 in poi), all&#8217;interno di PHPCompatibility.<\/p>\n<p>Dovreste fare attenzione alle funzioni deprecate o eliminate, ai valori predefiniti dei parametri delle funzioni, all&#8217;uso di concat senza parentesi, all&#8217;uso di match come nome di funzione (dato che \u00e8 riservato da PHP 8.0), ecc.<\/p>\n<figure id=\"attachment_147872\" aria-describedby=\"caption-attachment-147872\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147872 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/PHPCompatibility-1024x619-1.png\" alt=\"Screenshot dalla pagina GitHub di PHPCompatibility\" width=\"1024\" height=\"619\"><figcaption id=\"caption-attachment-147872\" class=\"wp-caption-text\">Screenshot dalla pagina PHPCompatibility di GitHub<\/figcaption><\/figure>\n<p>Psalm e PHPStan sono delle buone aggiunte e possono aiutarvi a eseguire ulteriori controlli relativi ai tipi di variabili. L&#8217;aspetto negativo di questi strumenti \u00e8 che richiedono molte configurazioni per ottenere i rapporti su PHP 8.0 e 8.1. Anche se hanno successo, \u00e8 possibile che i risultati siano inferiori a quelli attesi. Anche se hanno successo, potete aspettarvi molti falsi positivi. I falsi positivi sono notifiche errate, causate dai limiti dell&#8217;analisi statica.<\/p>\n<p>\u00c8 necessaria una buona conoscenza per interpretare correttamente i risultati di questi due strumenti, ma questa conoscenza pu\u00f2 aiutarvi a identificare ulteriori incompatibilit\u00e0 che PHPCompatibility non pu\u00f2 trovare. Consultate la documentazione di <a href=\"https:\/\/psalm.dev\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Psalm<\/a> e <a href=\"https:\/\/phpstan.org\/user-guide\/getting-started\" target=\"_blank\" rel=\"noopener noreferrer\">PHPStan<\/a> se volete saperne di pi\u00f9.<\/p>\n<p>Riepilogo:<\/p>\n<ul>\n<li>Eseguire l&#8217;analisi statica con PHPCompatibility, Psalm e PHPStan<\/li>\n<li>Risolvere tutti i problemi legittimi<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Consiglio esperto di Juliette<\/strong><\/p>\n<p>Durante i test, nel file php.ini \/ wp-config.php, impostate error_reporting a -1. Questo perch\u00e9 E_ALL, a seconda della versione di PHP, non contiene tutto.<\/p>\n<p>Solo dalla versione 8.0 in poi E_ALL contiene tutto. Inoltre, attivate log_errors per visualizzare le notifiche in un file di log.<\/p>\n<p>Non attivate la registrazione degli errori su un sito live perch\u00e9 pu\u00f2 causare ritardi, in quanto deve scrivere i dati su un file. Quindi, fate questo in un ambiente di staging e assicuratevi di sapere cosa succede o cosa non funziona.<\/p>\n<p>Per visualizzare i log in MyKinsta, andate sul sito web e fate clic su <strong>Log<\/strong> nel menu. Qui potete visualizzare i file error.log e access.log e studiare tutte le voci di log.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/wordpress-risoluzione-problemi\/visualizzazione-server-log\/\">Fate clic qui per saperne di pi\u00f9 sulla visualizzazione dei log in MyKinsta<\/a>.<\/p>\n<\/aside>\n\n<figure id=\"attachment_147929\" aria-describedby=\"caption-attachment-147929\" style=\"width: 2806px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147929 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/mykinsta-access-logs-eng0.png\" alt=\"Schermata di MyKinsta con la visualizzazione dei file di log\" width=\"2806\" height=\"1746\"><figcaption id=\"caption-attachment-147929\" class=\"wp-caption-text\">MyKinsta &#8211; visualizzazione dei file di log<\/figcaption><\/figure>\n<h3>Unit Testing<\/h3>\n<p>La fase successiva del processo \u00e8 lo unit testing. Questo \u00e8 un metodo per testare pezzi di codice singolarmente. Negli unit testing si sviluppano test specifici e mirati per ogni unit\u00e0. Questo comporta l&#8217;esecuzione di diversi scenari. Preferibilmente, ogni scenario viene testato separatamente dagli altri in modo che i test siano indipendenti l&#8217;uno dall&#8217;altro.<\/p>\n<p>Gli unit testing da soli, ovviamente, non bastano. Devono anche essere eseguiti. Il modo migliore per automatizzare gli unit testing \u00e8 usare strumenti di CI (continuous integration) come <a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jenkins<\/a>, <a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub Actions<\/a> o <a href=\"https:\/\/www.travis-ci.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Travis<\/a>.<\/p>\n<figure id=\"attachment_147875\" aria-describedby=\"caption-attachment-147875\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147875 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/github-actions-1024x687-1.png\" alt=\"Schermata di esempio da GitHub Actions\" width=\"1024\" height=\"687\"><figcaption id=\"caption-attachment-147875\" class=\"wp-caption-text\">Un esempio da GitHub Actions<\/figcaption><\/figure>\n<h4>Supportare Pi\u00f9 Versioni di PHP<\/h4>\n<p>Se vi occupate di costruire plugin e volete supportare pi\u00f9 versioni di PHP, assicuratevi che i test in CI vengano eseguiti su tutte le versioni di PHP supportate.<\/p>\n<p>Naturalmente, potete anche supportare solo le versioni pi\u00f9 recenti: la scelta spetta solo a voi.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Consiglio esperto di Juliette<\/strong><\/p>\n<p>Su GitHub Actions, potete gi\u00e0 testare con PHP 8.2, il che vi garantir\u00e0 di ricevere avvisi tempestivi sulle nuove modifiche di PHP di cui dovete tenere conto.<\/p>\n<\/aside>\n\n<p>I test con pi\u00f9 versioni di PHP richiedono l&#8217;utilizzo di pi\u00f9 versioni di PHPUnit, a seconda della versione di PHP. Poich\u00e9 PHPUnit ha introdotto diversi cambiamenti nel corso degli anni che influenzano il modo in cui vengono scritti i test, questa parte pu\u00f2 essere complicata.<\/p>\n<p>Per ovviare a questo problema, potete usare i <a href=\"https:\/\/github.com\/Yoast\/PHPUnit-Polyfills\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit Polyfills<\/a> (scritti da Juliette e sponsorizzati da <a href=\"https:\/\/kinsta.com\/partners\/yoast\/\">Yoast<\/a>). Questo vi permette di scrivere test che non sono ufficialmente supportati da PHPUnit 9 (e quindi possono essere eseguiti su PHP 8.x). I Polyfill fanno s\u00ec che i vostri test funzionino con PHPUnit 4.x fino a 9.x e con PHP 5.4 fino a PHP 8.1 (per ora).<\/p>\n<p>Ora che i test sono in esecuzione, il passo successivo \u00e8 assicurarsi che i problemi riscontrati nei test siano risolti.<\/p>\n<h4>Copertura del Codice<\/h4>\n<p>L&#8217;esecuzione di questi test \u00e8 il modo pi\u00f9 affidabile per trovare le incompatibilit\u00e0 tra le versioni.<\/p>\n<p>Nel farlo, prestate attenzione alla <em>copertura del codice<\/em> dei vostri test:<\/p>\n<ul>\n<li>Supponiamo di avere una funzione A e di aver scritto un test per essa, e che la funzione A chiami le funzioni B, C e D come parte della logica della funzione.<\/li>\n<li>Il test per la funzione A \u00e8 stato scritto per testare la logica della funzione A, ma durante il test chiamer\u00e0 anche le funzioni B, C e D. Per quanto riguarda le funzioni B, C e D, di solito si testa solo il &#8220;percorso senza errori&#8221; &#8211; la situazione in cui tutto va bene &#8211; e quindi anche queste funzioni non sono ancora completamente testate, anche se (parte del) codice di queste funzioni viene eseguito durante il test della funzione A.<\/li>\n<li>Per ognuno dei test, indicare qual \u00e8 il codice che viene testato nello specifico assegnando ad ogni test un <a href=\"https:\/\/phpunit.readthedocs.io\/en\/9.5\/code-coverage-analysis.html#specifying-covered-code-parts\">@covers<\/a>. In questo modo, B, C e D non sono &#8220;contati&#8221; nel calcolo della copertura del codice, cosa che consente di vedere quale parte del codice \u00e8 coperta dai test.<\/li>\n<\/ul>\n<p>Spesso gli sviluppatori scrivono e testano &#8211; a volte anche inconsapevolmente &#8211; solo per il &#8220;percorso senza errori&#8221;. In questi casi, \u00e8 necessario verificare cosa succede quando vengono passati dati inaspettati a una funzione. I <strong>test con i soli valori\/tipi attesi non sono sufficienti<\/strong>.<\/p>\n\n<p>La seconda parte della citazione precedente viene spesso dimenticata, mentre \u00e8 forse ancora pi\u00f9 importante della prima. Cosa succede se si passa un tipo non corretto? Viene visualizzato un messaggio di errore? Oppure la variabile viene lanciata e la funzione continua normalmente? E se viene passato un valore inaspettato alla funzione?<\/p>\n<p>Assicuratevi di testare le vostre funzioni con variabili, tipi e valori inaspettati. Solo cos\u00ec potrete fare affidamento sui vostri test per individuare i problemi che una nuova versione di PHP potrebbe causare.<\/p>\n<h4>Il PHP Sta Diventando Pi\u00f9 Rigoroso<\/h4>\n<p>PHP sta diventando pi\u00f9 preciso (e rigoroso) nel modo in cui gestisce i &#8220;tipi&#8221; per le funzioni di PHP stesso, ma anche le propriet\u00e0 dinamiche. Questi cambiamenti hanno lo scopo di aiutare gli sviluppatori a creare codice privo di errori (o meglio, con meno errori). Ma questo pu\u00f2 rappresentare un ostacolo all&#8217;aggiornamento per il codice preesistente scritto sulla base dei &#8220;vecchi&#8221; principi di PHP.<\/p>\n<p>A causa della ricerca di messaggi di errore pi\u00f9 utili in PHP, \u00e8 possibile notare che rendere il codice esistente adatto alle nuove versioni di PHP richiede sempre pi\u00f9 tempo. Nella maggior parte dei casi, rendere il codice che funzionava con PHP 5.6 adatto a PHP 7.0 richiedeva solo una frazione del tempo rispetto all&#8217;aggiornamento del codice per renderlo adatto a PHP 8.1. E questo nonostante il fatto che PHP 7.0 sia una versione &#8220;major&#8221;, mentre PHP 8.1 \u00e8 una &#8220;minor&#8221;.<\/p>\n<p>In molti casi, i test sono ancora l&#8217;unico modo affidabile per determinare cosa deve essere modificato per supportare una nuova versione.<\/p>\n<p>Gli unit testing sono possibili con diversi strumenti, tra cui:<\/p>\n<ul>\n<li><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit<\/a><\/li>\n<li><a href=\"http:\/\/docs.mockery.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mockery<\/a><\/li>\n<li><a href=\"https:\/\/docs.behat.org\/en\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">Behat<\/a>,<\/li>\n<li><a href=\"http:\/\/datasift.github.io\/storyplayer\/v2\/using\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Storyplayer<\/a><\/li>\n<\/ul>\n<p>Molti di questi strumenti si basano su PHPUnit o si combinano con esso.<\/p>\n<p>In definitiva, non importa quali strumenti usate. La cosa pi\u00f9 importante \u00e8 fare dei test e farli funzionare sulle nuove versioni di PHP. Questo passaggio pu\u00f2 essere a volte molto complicato, ma per fortuna, come gi\u00e0 detto, esistono degli strumenti appositi, come i <a href=\"https:\/\/github.com\/Yoast\/PHPUnit-Polyfills\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit Polyfills<\/a>.<\/p>\n<h3>Test di Integrazione<\/h3>\n<p>I test di integrazione sono la fase successiva all&#8217;analisi statica e agli unit testing. Un test di integrazione consiste nel testare situazioni reali in un contesto pi\u00f9 ampio rispetto alla semplice &#8220;unit\u00e0 di codice&#8221;. Tra questi ci sono i test con un database attivo (di prova) o i test con un&#8217;API esterna, per fare solo due esempi.<\/p>\n<p>Quindi, quando si testa il codice di un plugin o di un tema nel contesto di WordPress e si utilizza una versione reale, questi sono, per definizione, test di integrazione.<\/p>\n<p>WP Test Utils (scritto sempre da Juliette e sponsorizzato da Yoast) \u00e8 uno strumento eccellente per i test di integrazione. WP Test Utils fornisce strumenti per scrivere unit test e test di integrazione, in cui WordPress viene &#8220;simulato&#8221; utilizzando <a href=\"https:\/\/github.com\/Brain-WP\/BrainMonkey\" target=\"_blank\" rel=\"noopener noreferrer\">Brainmonkey<\/a> e <a href=\"http:\/\/docs.mockery.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mockery<\/a>, dove le funzioni di WordPress comunemente utilizzate vengono &#8220;falsificate&#8221; in modo da testare il vostro codice e non quello di WordPress.<\/p>\n<figure id=\"attachment_147877\" aria-describedby=\"caption-attachment-147877\" style=\"width: 911px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147877 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/wp-test-utils.png\" alt=\"Schermata della pagina readme di WP Test Utilities su GitHub\" width=\"911\" height=\"648\"><figcaption id=\"caption-attachment-147877\" class=\"wp-caption-text\">WP Test Utilities su GitHub<\/figcaption><\/figure>\n<p>I test di integrazione con WordPress sono pi\u00f9 complicati perch\u00e9 implicano l&#8217;integrazione con WordPress e la suite di test di WordPress. A seconda delle versioni di WordPress supportate da un plugin o da un tema, dovete considerare quali versioni di PHPUnit sono supportate da WordPress stesso per eseguire i test su diverse versioni di PHP.<\/p>\n<p>Per esempio, WordPress dalla 5.6 alla 5.8 usa <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/references\/phpunit-compatibility-and-wordpress-versions\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit dalla 5 alla 7<\/a> per testare <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/references\/php-compatibility-and-wordpress-versions\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP dalla 5.6 alla 8.0<\/a>, ma a partire da WordPress 5.9, WordPress stesso utilizza anche PHPUnit Polyfills per un supporto pi\u00f9 ampio. WP Test Utils funge da ponte per superare tutte queste differenze.<\/p>\n<p>Volete saperne di pi\u00f9 su come eseguire test di integrazione su pi\u00f9 versioni di WordPress, tra cui WordPress 5.9 e successive? Allora <a href=\"https:\/\/make.wordpress.org\/core\/2021\/09\/27\/changes-to-the-wordpress-core-php-test-suite\/\" target=\"_blank\" rel=\"noopener noreferrer\">leggete l&#8217;articolo sul sito web di WordPress<\/a>.<\/p>\n<h3>Test Manuali<\/h3>\n<p>Ora che avete eseguito gli unit testing e i test di integrazione e avete risolto tutti i problemi riscontrati, \u00e8 il momento di eseguire i test manuali. Il vostro sito funziona e il vostro codice funziona, ma state utilizzando anche i plugin A, B e C. Sapete se questi plugin sono compatibili?<\/p>\n<p>Per esempio, verificate con gli autori del plugin e cercate un\u2019indicazione sulla compatibilit\u00e0 con PHP 8.x. La domanda da porsi, ovviamente, \u00e8 come \u00e8 stato testato il plugin. Spesso la risposta \u00e8: in isolamento. Di solito le funzioni del plugin sono state testate solo con WordPress, senza altri plugin attivi. E anche se in questi test sono stati utilizzati altri plugin, \u00e8 probabile che non tutti i plugin da <em>voi<\/em> utilizzati abbiano preso parte ai test, quindi prendete con le molle questa dichiarazione di compatibilit\u00e0.<\/p>\n<p>Per esempio, prendiamo un sito WordPress con 3 plugin (A, B e C). \u00c8 possibile che il plugin B, per esempio, restituisca un tipo di variabile errato tramite un filtro, che il plugin C, utilizzando lo stesso filtro, vuole utilizzare. Questo pu\u00f2 causare un errore fatale perch\u00e9 il tipo non \u00e8 pi\u00f9 quello previsto. Il plugin C viene quindi visto come il colpevole del messaggio di errore, anche se il plugin B \u00e8 il vero colpevole.<\/p>\n<p>L&#8217;interoperabilit\u00e0 e l&#8217;incompatibilit\u00e0 dei plugin sono impossibili da scoprire quando si eseguono test isolati. Pi\u00f9 sono i plugin attivi, pi\u00f9 \u00e8 probabile che qualcosa vada storto. Per esempio, sarebbe molto utile passare le richieste di pagina da un sito web live a un ambiente di staging (con la registrazione degli errori attivata) per scoprire cosa effettivamente non va.<\/p>\n<p>Con questo tipo di problema, il proprietario del sito di solito vedr\u00e0 solo un messaggio che segnala un errore nell&#8217;ultimo codice eseguito (in questo caso, dal plugin C), anche se il plugin C non \u00e8 necessariamente la causa del problema.<\/p>\n<p>Nella maggior parte dei casi, \u00e8 necessario un lavoro manuale e umano e una buona dose di olio di gomito per individuare e risolvere questi problemi. Tutto ci\u00f2 <em>potrebbe<\/em> essere automatizzato utilizzando i test end-to-end, ma non ci risulta che questo avvenga spesso in WordPress.<\/p>\n<h4>Disponibilit\u00e0 di Test per i Plugin Utilizzati<\/h4>\n<p>Per gli sviluppatori e i team di sviluppo: accettate il codice solo se i test sono disponibili. In questo modo, vi assicurate che siano necessari meno test manuali, con un notevole risparmio di tempo.<\/p>\n<p>Mettete in discussione la sua strategia di test se volete acquistare un plugin o un tema commerciale. In questo modo, creiamo una consapevolezza collettiva tra gli sviluppatori e i team di sviluppo della comunit\u00e0 di WordPress per far s\u00ec che i test vengano messi in cima all&#8217;agenda e ne beneficiamo tutti.<\/p>\n<p>I test sono spesso visti &#8211; ingiustamente &#8211; come un costo quando, in realt\u00e0, fanno risparmiare denaro. L&#8217;investimento extra richiesto per scrivere i test si ripaga sotto forma di un numero significativamente inferiore di segnalazioni di bug e di tempo speso per correggerli. Inoltre, con i test automatizzati del software, le estensioni e le modifiche possono essere effettuate pi\u00f9 velocemente perch\u00e9 i test possono confermare rapidamente che le funzionalit\u00e0 esistenti continuano a funzionare.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Consiglio esperto di Juliette<\/strong><\/p>\n<p>Quando volete iniziare a scrivere nuovo codice:<\/p>\n<ol>\n<li>Iniziate a scrivere cosa deve fare una funzione e con quale logica. Scrivetelo come commento o serie di commenti.<\/li>\n<li>Scrivete i test. Cercate di tenere a mente anche i casi limite.<\/li>\n<li>Solo dopo scrivete il codice.<\/li>\n<\/ol>\n<p>La met\u00e0 della logica originale che avete descritto nei commenti sar\u00e0 scomparsa perch\u00e9 sostituita dal codice. Lasciate il resto dei commenti, perch\u00e9 possono aiutarvi a capire di nuovo la logica in un secondo momento, se \u00e8 da un po\u2019 di tempo che non guardate il codice.<\/p>\n<\/aside>\n\n\n<h2>Il Ruolo degli Host WordPress e di PHP 8.x<\/h2>\n<p>Per chi possiede un sito medio, una guida da parte del vostro host \u00e8 auspicabile. Considerate quanto segue:<\/p>\n<ul>\n<li>Documentazione e aggiornamenti per i clienti che sanno che WordPress Core, i plugin e\/o i temi non sono (in alcuni casi) compatibili con le versioni incrociate di PHP.<\/li>\n<li>Opzioni per effettuare test (come per esempio <a href=\"https:\/\/kinsta.com\/it\/hosting-wordpress\/staging\/\">lavorare con un ambiente di staging<\/a>).<\/li>\n<li>Metodi per segnalare gli errori e contattare l&#8217;assistenza.<\/li>\n<\/ul>\n<p>Questo va a vantaggio anche dell&#8217;host web, in quanto i proprietari dei siti spesso contattano l&#8217;host per chiedere aiuto quando si verificano dei problemi. Nel caso di un passaggio a PHP 8.0, 8.1 o 8.2, il proprietario del sito \u00e8 responsabile dei potenziali problemi e pi\u00f9 informazioni ha per prepararsi adeguatamente al passaggio, meglio \u00e8.<\/p>\n<p>Mettere a disposizione dei clienti PHP 8.1 o 8.2 come host web \u00e8 una cosa, ma nel farlo deve assicurarsi di sensibilizzare i clienti in modo che siano consapevoli che potrebbero emergere dei problemi. \u00c8 consigliabile testare il sito in un ambiente di staging con una versione diversa da quella live. (La selezione delle versioni di PHP \u00e8 <a href=\"https:\/\/kinsta.com\/it\/changelog\/php-8\/\">disponibile per impostazione predefinita su Kinsta<\/a>).<\/p>\n<h2>Versione PHP Minima per WordPress<\/h2>\n<p>Oltre il 15% di tutti i siti web usa attualmente la versione PHP 7.0 o inferiore. Questo dato \u00e8 riportato nelle <a href=\"https:\/\/wordpress.org\/about\/stats\/\" target=\"_blank\" rel=\"noopener noreferrer\">statistiche ufficiali di WordPress<\/a>. Circa l&#8217;83% di tutti i siti WordPress utilizza attualmente la versione PHP 7.4 o inferiore. Ricordate che qualsiasi versione inferiore o uguale alla 8.0 <a href=\"https:\/\/www.php.net\/supported-versions\" target=\"_blank\" rel=\"noopener noreferrer\">non \u00e8 pi\u00f9 supportata da PHP<\/a>. L&#8217;utilizzo di versioni di PHP a fine vita pu\u00f2 causare problemi perch\u00e9 gli aggiornamenti di sicurezza non vengono pi\u00f9 rilasciati.<\/p>\n<p>Per evitare problemi, \u00e8 importante che i proprietari di siti WordPress conoscano e si informino sulla versione minima di PHP che consente al loro sito di funzionare in modo sicuro. Da parte loro, i proprietari dei siti possono modificare autonomamente la versione di PHP (<a href=\"https:\/\/kinsta.com\/it\/blog\/come-aggiornare-php-in-wordpress\/\">possibile presso Kinsta per tutti i pacchetti<\/a>) o chiedere al proprio host di aggiornare il sito a una versione PHP pi\u00f9 recente. In casi estremi, \u00e8 possibile passare a un host che supporti queste versioni pi\u00f9 recenti.<\/p>\n<p>Poich\u00e9 WordPress richiede solo una <a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener noreferrer\">versione minima di 7.4<\/a>, molti host e proprietari di siti web non sono sufficientemente motivati ad aggiornare i loro siti. E questo nonostante il fatto che PHP 7.4 abbia raggiunto il suo termine di vita nel <a href=\"https:\/\/www.php.net\/eol.php\" target=\"_blank\" rel=\"noopener noreferrer\">novembre 2022<\/a>.<\/p>\n<p>Se WordPress dovesse aumentare la versione minima di PHP, ci\u00f2 potrebbe significare che molti siti non saranno pi\u00f9 compatibili con l&#8217;aggiornamento all&#8217;ultima versione di WordPress. Tuttavia, gli aggiornamenti di sicurezza continueranno a essere rilasciati per queste versioni obsolete per un bel po&#8217; di tempo.<\/p>\n<h2>Riepilogo<\/h2>\n<p>Per passare a PHP 8.0 o versione superiore con il vostro sito web, ci sono diversi passaggi che voi o il vostro team di sviluppo dovete eseguire. I passi pi\u00f9 importanti sono:<\/p>\n<ul>\n<li>Analisi statica<\/li>\n<li>Unit testing<\/li>\n<li>Test di integrazione<\/li>\n<li>Test manuali<\/li>\n<\/ul>\n<p>Quando passate a PHP 8.x, assicuratevi che <em>tutto<\/em> sia stato testato correttamente. Questo \u00e8 l&#8217;unico modo per garantire che il vostro sito funzioni correttamente, velocemente e in modo sicuro su una versione PHP pi\u00f9 recente.<\/p>\n<p>Ringraziamo immensamente Juliette per aver partecipato a questo articolo e per il suo lavoro sugli strumenti citati!<\/p>\n<p><em>Foto di Juliette, scattata da Jip Moors e utilizzata con il suo permesso.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aggiornare un sito, un plugin o un tema WordPress a una nuova versione di PHP \u00e8 un&#8217;operazione che si ripete regolarmente. Ma come farlo nel modo &#8230;<\/p>\n","protected":false},"author":139,"featured_media":66425,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26188,26189],"class_list":["post-66424","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-aggiornamenti-php","topic-impara-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Passare a PHP 8.x in Quattro Step - Intervista a Juliette Reinders Folmer - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Passare a PHP 8.x in Quattro Step - Intervista a Juliette Reinders Folmer\" \/>\n<meta property=\"og:description\" content=\"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-07T10:40:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-12T08:38:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marcel Bootsman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcel Bootsman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\"},\"author\":{\"name\":\"Marcel Bootsman\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7\"},\"headline\":\"Passare a PHP 8.x in Quattro Step &#8211; Intervista a Juliette Reinders Folmer\",\"datePublished\":\"2023-03-07T10:40:00+00:00\",\"dateModified\":\"2023-06-12T08:38:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\"},\"wordCount\":3883,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\",\"name\":\"Passare a PHP 8.x in Quattro Step - Intervista a Juliette Reinders Folmer - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"datePublished\":\"2023-03-07T10:40:00+00:00\",\"dateModified\":\"2023-06-12T08:38:47+00:00\",\"description\":\"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aggiornamenti PHP\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/aggiornamenti-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Passare a PHP 8.x in Quattro Step &#8211; Intervista a Juliette Reinders Folmer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7\",\"name\":\"Marcel Bootsman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g\",\"caption\":\"Marcel Bootsman\"},\"description\":\"Partnerships &amp; Community Manager EMEA. Je kan me bereiken via Linkedin.\",\"sameAs\":[\"https:\/\/kinsta.com\/nl\/\",\"https:\/\/www.linkedin.com\/in\/marcelbootsman\/\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/marcelbootsman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Passare a PHP 8.x in Quattro Step - Intervista a Juliette Reinders Folmer - Kinsta\u00ae","description":"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/","og_locale":"it_IT","og_type":"article","og_title":"Passare a PHP 8.x in Quattro Step - Intervista a Juliette Reinders Folmer","og_description":"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.","og_url":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-03-07T10:40:00+00:00","article_modified_time":"2023-06-12T08:38:47+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png","type":"image\/png"}],"author":"Marcel Bootsman","twitter_card":"summary_large_image","twitter_description":"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Marcel Bootsman","Tempo di lettura stimato":"19 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/"},"author":{"name":"Marcel Bootsman","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7"},"headline":"Passare a PHP 8.x in Quattro Step &#8211; Intervista a Juliette Reinders Folmer","datePublished":"2023-03-07T10:40:00+00:00","dateModified":"2023-06-12T08:38:47+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/"},"wordCount":3883,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/","url":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/","name":"Passare a PHP 8.x in Quattro Step - Intervista a Juliette Reinders Folmer - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png","datePublished":"2023-03-07T10:40:00+00:00","dateModified":"2023-06-12T08:38:47+00:00","description":"Scopri quali sono i passi da compiere per passare a PHP 8.x senza problemi per un sito, un plugin o un tema WordPress.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/03\/Juliette_Reinders_Folmer_image.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/passare-a-php-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Aggiornamenti PHP","item":"https:\/\/kinsta.com\/it\/argomenti\/aggiornamenti-php\/"},{"@type":"ListItem","position":3,"name":"Passare a PHP 8.x in Quattro Step &#8211; Intervista a Juliette Reinders Folmer"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7","name":"Marcel Bootsman","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g","caption":"Marcel Bootsman"},"description":"Partnerships &amp; Community Manager EMEA. Je kan me bereiken via Linkedin.","sameAs":["https:\/\/kinsta.com\/nl\/","https:\/\/www.linkedin.com\/in\/marcelbootsman\/"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/marcelbootsman\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/66424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/139"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=66424"}],"version-history":[{"count":16,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/66424\/revisions"}],"predecessor-version":[{"id":70066,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/66424\/revisions\/70066"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/en"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/nl"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/translations\/dk"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/66424\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/66425"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=66424"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=66424"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=66424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}