{"id":230596,"date":"2022-11-26T11:14:00","date_gmt":"2022-11-26T08:14:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230596"},"modified":"2022-11-09T23:07:48","modified_gmt":"2022-11-09T20:07:48","slug":"gestisci-con-grazia-il-supporto-della-versione-php-in-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/gestisci-con-grazia-il-supporto-della-versione-php-in-wordpress\/","title":{"rendered":"Gestisci con grazia il supporto della versione PHP in WordPress"},"content":{"rendered":"\n<p>Da quando lavoro con WordPress, la conversazione (e uso questo termine in modo approssimativo) su quali versioni di PHP dovrebbe o non dovrebbe supportare \u00e8 in corso.<\/p>\n<ul>\n<li>Il fatto \u00e8 che alcuni la vedono come un&#8217;applicazione grande e popolare come WordPress che alimenta cos\u00ec tanti siti Web basati su CMS che dovrebbero essere in grado di utilizzare il suo potere per promuovere soluzioni pi\u00f9 innovative.<\/li>\n<li>Altri vedono che le persone non aggiornano spesso, hanno host con budget limitato o semplicemente non si preoccupano (per non parlare di sapere) quale versione di PHP stanno eseguendo.<\/li>\n<\/ul>\n<p>Questi due punti potrebbero produrre un post e commenti per giorni, ma non mi interessa. Poich\u00e9 <strong><a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">io e il mio team<\/a><\/strong> ci occupiamo della creazione di soluzioni personalizzate per gli altri, abbiamo la flessibilit\u00e0 di fare il punto su dove gli utenti ospitano il loro sito o applicazione, implementarlo e sfruttare le funzionalit\u00e0 di PHP offerte dai loro host.<\/p>\n<p>Ci sono, tuttavia, volte in cui ho incontrato alcune persone che eseguono versioni di PHP a partire dalla 5.3.<\/p>\n<p>E allora?<\/p>\n<p>Innanzitutto, <strong><a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la pagina dei requisiti di WordPress<\/a><\/strong> menziona specificamente questo:<\/p>\n<blockquote>\n<p>Se ti trovi in \u200b\u200bun ambiente legacy in cui hai solo versioni precedenti di PHP o MySQL, WordPress funziona anche con PHP 5.2.4+ e MySQL 5.0+, ma queste versioni hanno raggiunto la fine del ciclo di vita ufficiale.<\/p>\n<\/blockquote>\n<p>Quindi, per essere chiari, funziona su versioni precedenti di PHP ma, come sviluppatori, saremo fortemente limitati da ci\u00f2 che possiamo fare con il linguaggio. E, come menziona la pagina, le implicazioni sulla sicurezza e il supporto &quot;fine vita&quot; della versione del linguaggio non dovrebbero essere ignorate.<\/p>\n<p>Ogni volta che lavoro con un plug-in o qualcosa che verr\u00e0 eseguito su WordPress e so che dovr\u00e0 essere eseguito su una variet\u00e0 di host, fornisco un minimo di supporto. Questo di solito PHP 5.6.20.<\/p>\n<p>Se l&#8217;ambiente in cui verr\u00e0 eseguito il progetto non lo supporta, avviser\u00f2 e impedir\u00f2 l&#8217;esecuzione del progetto. Nel contesto di un plug-in, \u00e8 probabilmente meglio collegarsi alla funzione register_activation_hook.<\/p>\n<p>Per farlo, puoi scrivere qualcosa del <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/eab44952ef0add72eafab04332f9ef34#file-00-php-version-support-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">genere:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\nregister_activation_hook(__FILE__, __NAMESPACE__. 'acme_activate');\n\/**\n * Verifies that the user is running the proper version of WordPress for the\n * plugin to execute; otherwise, displays an error message and prevents the\n * plugin from being activated.\n *\/\nfunction acme_activate()\n{\n    if (version_compare(PHP_VERSION, '5.6.20', '&lt;')) {\n        wp_die(\n            sprintf(\n                'Acme requires PHP 5.6.20 or higher.\n                Your WordPress site is using PHP %s. Please contact your hosting\n                provider and ask that they upgrade the version of PHP on which\n                your installation of WordPress is running. Click back in your\n                browser to your WordPress dashboard.',\n                PHP_VERSION) );\n    }\n}<\/code><\/pre>\n<p>Certo, \u00e8 semplice e il display utilizza lo stile standard wp_die, ma funziona ugualmente. Se hai pi\u00f9 esperienza o tempo, \u00e8 possibile anche eseguire i controlli in modo leggermente diverso e fornire il tuo stile.<\/p>\n<p>Lo scopo di questo post non \u00e8 come farlo. I punti invece sono:<\/p>\n<ul>\n<li>determinare quale versione di PHP si intende supportare,<\/li>\n<li>confrontare la versione di PHP in esecuzione sul server,<\/li>\n<li>rendere un messaggio se la versione di PHP sul server \u00e8 inferiore a quella che supporterai,<\/li>\n<li>uscire con grazia.<\/li>\n<\/ul>\n<p>Il modo in cui finisci per renderizzarlo dipende da te, ma l&#8217;essenza del codice sopra dovrebbe essere sufficiente per iniziare.<\/p>\n<h3>Note aggiuntive<\/h3>\n<ul>\n<li><strong><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_die\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_il<\/a><\/strong><\/li>\n<li><a href=\"https:\/\/php.net\/manual\/en\/function.version-compare.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">versione_compara<\/a><\/li>\n<li><strong><a href=\"https:\/\/php.net\/manual\/en\/reserved.constants.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VERSIONE_PHP<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/php.net\/manual\/en\/function.sprintf.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sprintf<\/a><\/strong><\/li>\n<\/ul>\n<p>E se vuoi davvero approfondire la gestione delle stringhe in PHP, ti consiglio il post <strong><a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">di Carl sulla<\/a><\/strong> <strong><a href=\"https:\/\/carlalexander.ca\/php-string-formatting\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gestione delle stringhe in PHP<\/a><\/strong>.<\/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>Le versioni di supporto di PHP in WordPress possono variare in base al progetto. Ecco un modo per gestirlo all&#8217;interno di un plugin.<\/p>\n","protected":false},"author":1,"featured_media":164297,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,804,720,844,865],"tags":[1168],"class_list":["post-230596","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-php-6","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230596","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=230596"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230596\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/164297"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}