{"id":230279,"date":"2022-11-26T11:05:00","date_gmt":"2022-11-26T08:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230279"},"modified":"2022-11-09T20:55:41","modified_gmt":"2022-11-09T17:55:41","slug":"gerer-avec-elegance-la-prise-en-charge-de-la-version-php-dans-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/gerer-avec-elegance-la-prise-en-charge-de-la-version-php-dans-wordpress\/","title":{"rendered":"G\u00e9rer avec \u00e9l\u00e9gance la prise en charge de la version PHP dans WordPress"},"content":{"rendered":"\n<p>Depuis que je travaille avec WordPress, la conversation (et j&rsquo;utilise ce terme de mani\u00e8re vague) sur les versions de PHP qu&rsquo;il doit ou ne doit pas prendre en charge est en cours.<\/p>\n<ul>\n<li>En bref, certains le voient comme une application aussi vaste et populaire que WordPress qui alimente tant de sites Web bas\u00e9s sur CMS devrait \u00eatre en mesure d&rsquo;utiliser son influence pour favoriser des solutions plus innovantes.<\/li>\n<li>D&rsquo;autres voient que les gens ne mettent pas souvent \u00e0 niveau, sont sur des h\u00f4tes \u00e0 petit budget ou ne se soucient tout simplement pas (et encore moins de savoir) quelle version de PHP ils utilisent.<\/li>\n<\/ul>\n<p>Ces deux points pourraient donner lieu \u00e0 un post et \u00e0 des commentaires pendant des jours, mais cela ne m&rsquo;int\u00e9resse pas. Parce que <strong><a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">mon \u00e9quipe et moi<\/a><\/strong> sommes charg\u00e9s de cr\u00e9er des solutions personnalis\u00e9es pour les autres, nous avons la possibilit\u00e9 de faire le point sur l&rsquo;endroit o\u00f9 les utilisateurs h\u00e9bergent leur site ou leur application, de le d\u00e9ployer et de tirer parti des fonctionnalit\u00e9s de PHP offertes par leurs h\u00f4tes.<\/p>\n<p>Il y a cependant des moments o\u00f9 j&rsquo;ai rencontr\u00e9 des personnes ex\u00e9cutant des versions de PHP aussi basses que 5.3.<\/p>\n<p>Alors quoi alors?<\/p>\n<p>Tout d&rsquo;abord, <strong><a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la page des exigences WordPress<\/a><\/strong> mentionne sp\u00e9cifiquement ceci :<\/p>\n<blockquote>\n<p>Si vous \u00eates dans un environnement h\u00e9rit\u00e9 o\u00f9 vous n&rsquo;avez que des versions plus anciennes de PHP ou MySQL, WordPress fonctionne \u00e9galement avec PHP 5.2.4+ et MySQL 5.0+, mais ces versions ont atteint la fin de vie officielle.<\/p>\n<\/blockquote>\n<p>Donc, pour \u00eatre clair, il fonctionne sur les anciennes versions de PHP mais, en tant que d\u00e9veloppeurs, nous serons s\u00e9v\u00e8rement limit\u00e9s par ce que nous pouvons faire avec le langage. Et, comme le mentionne la page, les implications en mati\u00e8re de s\u00e9curit\u00e9 et la prise en charge \u00aben fin de vie\u00bb de la version du langage ne doivent pas \u00eatre ignor\u00e9es.<\/p>\n<p>Chaque fois que je travaille avec un plugin ou quelque chose qui va fonctionner sur WordPress et que je sais qu&rsquo;il devra fonctionner sur une vari\u00e9t\u00e9 d&rsquo;h\u00f4tes, je fournis un minimum de support. Il s&rsquo;agit g\u00e9n\u00e9ralement de PHP 5.6.20.<\/p>\n<p>Si l&rsquo;environnement dans lequel le projet va s&rsquo;ex\u00e9cuter ne le prend pas en charge, j&rsquo;en informerai et emp\u00eacherai le projet de s&rsquo;ex\u00e9cuter. Dans le contexte d&rsquo;un plugin, il est probablement pr\u00e9f\u00e9rable de se connecter \u00e0 la fonction register_activation_hook.<\/p>\n<p>Pour ce faire, vous pouvez \u00e9crire quelque chose <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/eab44952ef0add72eafab04332f9ef34#file-00-php-version-support-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">comme ceci :<\/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>Certes, c&rsquo;est simple et l&rsquo;affichage utilise le style wp_die standard, mais cela fonctionne aussi. Si vous avez plus d&rsquo;exp\u00e9rience ou de temps, il est \u00e9galement possible d&rsquo;ex\u00e9cuter les v\u00e9rifications un peu diff\u00e9remment et de fournir votre propre style.<\/p>\n<p>Le but de cet article n&rsquo;est pas de savoir comment faire cela. Au lieu de cela, les points sont\u00a0:<\/p>\n<ul>\n<li>d\u00e9terminer quelle version de PHP vous allez prendre en charge,<\/li>\n<li>comparer la version de PHP en cours d&rsquo;ex\u00e9cution sur le serveur,<\/li>\n<li>afficher un message si la version de PHP sur le serveur est inf\u00e9rieure \u00e0 ce que vous supporterez,<\/li>\n<li>sortir gracieusement.<\/li>\n<\/ul>\n<p>La fa\u00e7on dont vous finissez par rendre cela d\u00e9pend de vous, mais l&rsquo;essentiel du code ci-dessus devrait \u00eatre suffisant pour vous aider \u00e0 d\u00e9marrer.<\/p>\n<h3>Notes compl\u00e9mentaires<\/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_the<\/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\">version_compare<\/a><\/li>\n<li><strong><a href=\"https:\/\/php.net\/manual\/en\/reserved.constants.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP_VERSION<\/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>Et si vous voulez vraiment approfondir la gestion des cha\u00eenes en PHP, je vous recommande le post <strong><a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de Carl sur la<\/a><\/strong> <strong><a href=\"https:\/\/carlalexander.ca\/php-string-formatting\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gestion des cha\u00eenes en PHP<\/a><\/strong>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les versions de support de PHP dans WordPress peuvent varier selon le projet. Voici une fa\u00e7on de le g\u00e9rer dans 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":[915,717,801,841,862],"tags":[1167],"class_list":["post-230279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autre","category-developpeur","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/230279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=230279"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/230279\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/164297"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=230279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=230279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=230279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}