{"id":1214,"date":"2020-12-24T09:24:07","date_gmt":"2020-12-24T08:24:07","guid":{"rendered":"https:\/\/www.wikeo.be\/blog\/?p=1214"},"modified":"2025-10-25T15:26:16","modified_gmt":"2025-10-25T13:26:16","slug":"mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4","status":"publish","type":"post","link":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/","title":{"rendered":"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4"},"content":{"rendered":"\n<p>Une fois n&rsquo;est pas coutume, j&rsquo;ai envie de parler un peu de technique sur ce blog. Wikeo tourne sur PHP 7.4 depuis peu. Jusque l\u00e0 nous \u00e9tions cantonn\u00e9 \u00e0 la version 7.3 car nous sommes en train de <a href=\"https:\/\/www.wikeo.be\/blog\/2020\/06\/19\/en-route-vers-une-nouvelle-version\/\">r\u00e9\u00e9crire Wikeo enti\u00e8rement avec des outils modernes<\/a>. Nous n&rsquo;avons donc pas mis la priorit\u00e9 sur le legacy.<\/p>\n\n\n\n<p>Cependant, cette <strong>dette technique<\/strong> commen\u00e7ait \u00e0 peser : si nous voulons suivre les mises \u00e0 jour de s\u00e9curit\u00e9 et de performances de nos serveurs, nous sommes oblig\u00e9s d&rsquo;assurer une maintenance de l&rsquo;ancien code.<\/p>\n\n\n\n<p>Une maintenance manuelle de ce code aurait \u00e9t\u00e9 bien trop chronophage pour un gain presque invisible. Nous avons donc \u00e9tudi\u00e9 les diff\u00e9rentes solutions open-source existantes afin d&rsquo;assurer cette transition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La peur du legacy<\/h2>\n\n\n\n<p>Lorsqu&rsquo;un logiciel \u00e9volue, les d\u00e9veloppeurs \u00e9voluent en m\u00eame temps que les am\u00e9liorations des technologies, la d\u00e9couvertes de nouvelles techniques, etc. Alors que nous nous concentrons sur les nouvelles fonctionnalit\u00e9s, les anciennes stagnent, se stabilisent et finissent par ne plus \u00e9voluer.<\/p>\n\n\n\n<p>Le code prend alors de l&rsquo;\u00e2ge et devient \u00ab\u00a0legacy\u00a0\u00bb, les d\u00e9veloppeurs commencent \u00e0 consid\u00e9rer comme risqu\u00e9 d&rsquo;y toucher car ce code est souvent un chateau de cartes et on y perd rapidement beaucoup de temps.<\/p>\n\n\n\n<p>Quand vient le moment de r\u00e9\u00e9crire le code, il est parfois difficile de se souvenir de ce que faisait exactement la fonctionnalit\u00e9. Deux options s&rsquo;offrent alors : analyser en d\u00e9tail la fonctionnalit\u00e9 afin de d\u00e9finir son but exact et la refaire avec des cas d&rsquo;utilisation identiques. Ou alors cette fonctionnalit\u00e9 n&rsquo;est plus utilis\u00e9e dans son enti\u00e8ret\u00e9 et c&rsquo;est l&rsquo;occasion de faire le m\u00e9nage pour simplifier le nouveau code en d\u00e9finissant les nouveaux cas d&rsquo;utilisation.<\/p>\n\n\n\n<p>Mais en attendant la r\u00e9\u00e9criture, il faut continuer \u00e0 maintenir le legacy sans y perdre trop de temps. Une solution est d&rsquo;automatiser cette maintenance au maximum. C&rsquo;est cette approche que nous avons choisi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le framework<\/h2>\n\n\n\n<p>Wikeo a \u00e9t\u00e9 d\u00e9velopp\u00e9 sur base d&rsquo;un framework PHP qui a maintenant disparu : Kohana. Heureusement, une \u00e9quipe de d\u00e9veloppeurs qui avaient besoin de faire \u00e9voluer des applications legacy tournant encore sur ce framework ont repris la base de code du framework. Ils mettent \u00e0 disposition le fruit de leurs efforts sur Github : <a href=\"https:\/\/github.com\/koseven\/koseven\">https:\/\/github.com\/koseven\/koseven<\/a><\/p>\n\n\n\n<p>La premi\u00e8re \u00e9tape a donc \u00e9t\u00e9 de remplacer les composants de Kohana par ceux de KO7 en utilisant la branche \u00ab\u00a0devel\u00a0\u00bb qui est compatible avec PHP 7.4.<\/p>\n\n\n\n<p>Nous avons assur\u00e9 cette transition sans trop de mal : les constantes pr\u00e9fix\u00e9es par \u00ab\u00a0KOHANA_\u00a0\u00bb ont toutes \u00e9t\u00e9 remplac\u00e9es par \u00ab\u00a0KO7_\u00a0\u00bb, un simple rechercher\/remplacer en est venu \u00e0 bout.<\/p>\n\n\n\n<p>Le module \u00ab\u00a0kohana\u00a0\u00bb assure la transition vers les classes pr\u00e9fix\u00e9es par \u00ab\u00a0Kohana_\u00a0\u00bb que nous avons remplac\u00e9es par \u00ab\u00a0KO7_\u00a0\u00bb. Il a suffit de charger ce nouveau module dans le fichier bootstrap pour assurer la compatibilit\u00e9 avec les classes h\u00e9rit\u00e9es.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le code<\/h2>\n\n\n\n<p>Le plus gros morceau concernait le code de Wikeo en lui-m\u00eame : plus de 800 fichiers r\u00e9partis dans des modules, des extensions et les contr\u00f4leurs. Impossible de tout v\u00e9rifier manuellement surtout pour certains changements complexes (des appels \u00e0 la fonction implode \u00e0 unifier notamment) et id\u00e9alement unifier et moderniser la syntaxe compl\u00e8te (ne plus appeler <em>array(&#8230;)<\/em> mais utiliser la structure <em>[&#8230;]<\/em>).<\/p>\n\n\n\n<p>Heureusement, des outils existent ! Le plus connu est <strong><a href=\"https:\/\/github.com\/FriendsOfPHP\/PHP-CS-Fixer\">PHP-CS-Fixer<\/a><\/strong> : cet outil va scanner votre code \u00e0 la recherche de manquements \u00e0 des r\u00e8gles pr\u00e9alablement d\u00e9finies dans un fichier de configuration. S&rsquo;il trouve des probl\u00e8mes, il les r\u00e9sout automatiquement ! Ca para\u00eet facile non ?<\/p>\n\n\n\n<p>En fait c&rsquo;est vraiment simple ! Le tout est de trouver un bon fichier de configuration pour d\u00e9marrer. J&rsquo;ai pris celui du Gist de Laravel Shift : <a href=\"https:\/\/gist.github.com\/laravel-shift\/cab527923ed2a109dda047b97d53c200\">https:\/\/gist.github.com\/laravel-shift\/cab527923ed2a109dda047b97d53c200<\/a> que j&rsquo;ai adapt\u00e9 aux besoins de Wikeo.<\/p>\n\n\n\n<p>Le fichier final est disponible sur le Gist de Wikeo : <a href=\"https:\/\/gist.github.com\/bistory\/2df00f28c36e8782866f393ea0256eaf\">https:\/\/gist.github.com\/bistory\/2df00f28c36e8782866f393ea0256eaf<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Les r\u00e8gles de PHP-CS-Fixer<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">'@PSR1' =&gt; true,<br>'@PSR2' =&gt; true,<br>'@PHP74Migration' =&gt; true,<br>'@PHP80Migration' =&gt; true,<\/pre>\n\n\n\n<p>Ces r\u00e8gles sont des raccourcis pour activer des ensembles de r\u00e8gles : compatibilit\u00e9 PSR1, PSR2, PHP 7.4 et PHP 8.0. Elles permettent de diminuer un peu la taille du fichier de configuration. J&rsquo;ai parcouru les r\u00e8gles qui sont activ\u00e9es avec ces raccourcis afin de nettoyer un peu le fichier de configuration de base.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">'psr4' =&gt; false,<\/pre>\n\n\n\n<p>Kohana a une structure de fichiers qui ne correspond pas du tout au standard PSR4. J&rsquo;ai donc d\u00fb d\u00e9sactiver ce param\u00e8tres pour \u00e9viter la r\u00e9\u00e9criture de tous les noms des classes.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">'no_alias_functions' =&gt; true,<\/pre>\n\n\n\n<p>Renomme une liste d&rsquo;alias de fonctions pour utiliser le nom natif. Permet d&rsquo;\u00e9viter d&rsquo;avoir des appels \u00e0 des fonctions d\u00e9pr\u00e9ci\u00e9es.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">'implode_call' =&gt; true,<\/pre>\n\n\n\n<p>La fonction implode peut accepter l&rsquo;argument \u00ab\u00a0glue\u00a0\u00bb en premi\u00e8re ou deuxi\u00e8me position. PHP 7.4 renvoie un warning pour signaler que l&rsquo;argument \u00ab\u00a0glue\u00a0\u00bb sera uniquement accept\u00e9 en premi\u00e8re position. Cette r\u00e8gle permet de r\u00e9\u00e9crire les appels \u00e0 implode pour supprimer ces warnings.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">'no_php4_constructor' =&gt; true,<\/pre>\n\n\n\n<p>Renomme les constructeurs en style PHP 4 vers __construct(). J&rsquo;ai rajout\u00e9 cette r\u00e8gle car PHP 8 va supprimer la compatibilit\u00e9 avec ces types de constructeurs. Il n&rsquo;y en avait pas dans le code mais \u00e7a permet de s&rsquo;en assurer.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">'no_unneeded_final_method' =&gt; true,\n'no_unreachable_default_argument_value' =&gt; true,<\/pre>\n\n\n\n<p>C&rsquo;est la m\u00eame id\u00e9e ici : PHP 8 apporte plus de constraintes pour am\u00e9liorer la qualit\u00e9 du code PHP produit. Ces deux r\u00e8gles suppriment des mauvaises pratiques ou des erreurs dans le code.<\/p>\n\n\n\n<p>Les autres r\u00e8gles du fichier agissent sur le formatage, l&rsquo;uniformisation du code (utilisation de echo et pas de print par exemple), etc.<\/p>\n\n\n\n<p>Cette \u00e9tape a permis de d\u00e9tecter et r\u00e9parer une dizaine de deprecation notices et nettoyer la plupart des fichiers de la base de code !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">P\u00e9renniser l&rsquo;effort<\/h2>\n\n\n\n<p>Faire cette maintenance \u00e9tait n\u00e9cessaire, mais s&rsquo;assurer qu&rsquo;elle puisse s&rsquo;inscrire sur le plus long terme, c&rsquo;est mieux ! Nous avons donc mis en place des garde-fous issus des d\u00e9veloppements sur la nouvelle version de Wikeo.<\/p>\n\n\n\n<p>Nous nous sommes tourn\u00e9s vers <a href=\"https:\/\/github.com\/phpro\/grumphp\"><strong>GrumPHP<\/strong><\/a>, un outil qui permet d&rsquo;ex\u00e9cuter une s\u00e9rie de v\u00e9rifications avant d&rsquo;envoyer du code sur un d\u00e9p\u00f4t Git. De cette mani\u00e8re, toute inclusion de code sera track\u00e9e et valid\u00e9e par PHP-CS-Fixer, si elle n&rsquo;est pas valide, elle sera rejet\u00e9e jusqu&rsquo;\u00e0 ce que \u00e7a soit le cas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>La migration de tout le code legacy de Wikeo vers PHP 7.4 s&rsquo;est faite en l&rsquo;espace d&rsquo;une journ\u00e9e seulement. Le service a \u00e9t\u00e9 ensuite test\u00e9 et mis en ligne le lendemain. Nous avons pu arr\u00eater les services PHP 7.3 pour tout faire tourner sur PHP 7.4. Nous envisageons aussi un passage serein vers PHP 8.0 d&rsquo;ici quelques mois (il tourne d\u00e9j\u00e0 sur notre serveur de test).<\/p>\n\n\n\n<p>Il est important de noter qu&rsquo;aucune r\u00e9gression n&rsquo;a \u00e9t\u00e9 constat\u00e9e pendant cette migration.<\/p>\n\n\n\n<p><strong>Fun fact :<\/strong> le seul soucis que nous avons rencontr\u00e9 lors de nos tests \u00e9tait li\u00e9 \u00e0 un probl\u00e8me de droits de lecture sur des fichiers statiques&#8230;<\/p>\n\n\n\n<p>Le gain de performances est perceptible : moins de m\u00e9moire et de CPU consomm\u00e9s signifient que le serveur est capable de mieux tenir la charge en cas d&rsquo;augmentation du trafic !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une fois n&rsquo;est pas coutume, j&rsquo;ai envie de parler un peu de technique sur ce blog. Wikeo tourne sur PHP 7.4 depuis peu. Jusque l\u00e0 nous \u00e9tions cantonn\u00e9 \u00e0 la version 7.3 car nous sommes en train de r\u00e9\u00e9crire Wikeo enti\u00e8rement avec des outils modernes. Nous n&rsquo;avons donc pas mis la priorit\u00e9 sur le legacy. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[231],"tags":[],"class_list":["post-1214","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpement"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4<\/title>\n<meta name=\"description\" content=\"Petit guide expliquant comment nous avons migr\u00e9 automatiquement le code PHP legacy pour le rendre compatible avec PHP 7.4\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4\" \/>\n<meta property=\"og:description\" content=\"Petit guide expliquant comment nous avons migr\u00e9 automatiquement le code PHP legacy pour le rendre compatible avec PHP 7.4\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Cr\u00e9er un site internet avec Wikeo : Astuces et conseils\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wikeocom\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-24T08:24:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-25T13:26:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/12\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1282\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Wikeo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wikeo\" \/>\n<meta name=\"twitter:site\" content=\"@wikeo\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wikeo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/\"},\"author\":{\"name\":\"Wikeo\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#\\\/schema\\\/person\\\/584f716ac941dc1506a4da467d54996f\"},\"headline\":\"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4\",\"datePublished\":\"2020-12-24T08:24:07+00:00\",\"dateModified\":\"2025-10-25T13:26:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/\"},\"wordCount\":1230,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg\",\"articleSection\":[\"D\u00e9veloppement\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/\",\"url\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/\",\"name\":\"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg\",\"datePublished\":\"2020-12-24T08:24:07+00:00\",\"dateModified\":\"2025-10-25T13:26:16+00:00\",\"description\":\"Petit guide expliquant comment nous avons migr\u00e9 automatiquement le code PHP legacy pour le rendre compatible avec PHP 7.4\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg\",\"contentUrl\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg\",\"width\":1920,\"height\":1282,\"caption\":\"Engrenages repr\u00e9sentant l'entretien du code PHP legacy\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/2020\\\/12\\\/24\\\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/\",\"name\":\"Cr\u00e9er un site internet avec Wikeo : Astuces et conseils\",\"description\":\"Bien d\u00e9marrer avec Wikeo, astuces r\u00e9f\u00e9rencement et tutoriels\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#organization\",\"name\":\"Wikeo\",\"url\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Wikeo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/wikeocom\",\"https:\\\/\\\/x.com\\\/wikeo\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/wikeo\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/#\\\/schema\\\/person\\\/584f716ac941dc1506a4da467d54996f\",\"name\":\"Wikeo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5e0a0d2d254145d4a989bbc54394255b58895293f7bfbd03e8b2719884600ffe?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5e0a0d2d254145d4a989bbc54394255b58895293f7bfbd03e8b2719884600ffe?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5e0a0d2d254145d4a989bbc54394255b58895293f7bfbd03e8b2719884600ffe?s=96&d=mm&r=g\",\"caption\":\"Wikeo\"},\"sameAs\":[\"https:\\\/\\\/www.wikeo.be\"],\"url\":\"https:\\\/\\\/www.wikeo.be\\\/blog\\\/author\\\/bistory\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4","description":"Petit guide expliquant comment nous avons migr\u00e9 automatiquement le code PHP legacy pour le rendre compatible avec PHP 7.4","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:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/","og_locale":"fr_FR","og_type":"article","og_title":"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4","og_description":"Petit guide expliquant comment nous avons migr\u00e9 automatiquement le code PHP legacy pour le rendre compatible avec PHP 7.4","og_url":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/","og_site_name":"Cr\u00e9er un site internet avec Wikeo : Astuces et conseils","article_publisher":"https:\/\/www.facebook.com\/wikeocom","article_published_time":"2020-12-24T08:24:07+00:00","article_modified_time":"2025-10-25T13:26:16+00:00","og_image":[{"width":1920,"height":1282,"url":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/12\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg","type":"image\/jpeg"}],"author":"Wikeo","twitter_card":"summary_large_image","twitter_creator":"@wikeo","twitter_site":"@wikeo","twitter_misc":{"\u00c9crit par":"Wikeo","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#article","isPartOf":{"@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/"},"author":{"name":"Wikeo","@id":"https:\/\/www.wikeo.be\/blog\/#\/schema\/person\/584f716ac941dc1506a4da467d54996f"},"headline":"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4","datePublished":"2020-12-24T08:24:07+00:00","dateModified":"2025-10-25T13:26:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/"},"wordCount":1230,"commentCount":0,"publisher":{"@id":"https:\/\/www.wikeo.be\/blog\/#organization"},"image":{"@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/12\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg","articleSection":["D\u00e9veloppement"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/","url":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/","name":"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4","isPartOf":{"@id":"https:\/\/www.wikeo.be\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#primaryimage"},"image":{"@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/12\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg","datePublished":"2020-12-24T08:24:07+00:00","dateModified":"2025-10-25T13:26:16+00:00","description":"Petit guide expliquant comment nous avons migr\u00e9 automatiquement le code PHP legacy pour le rendre compatible avec PHP 7.4","breadcrumb":{"@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#primaryimage","url":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/12\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg","contentUrl":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/12\/fidel-fernando-ppe3kHC1RsE-unsplash.jpg","width":1920,"height":1282,"caption":"Engrenages repr\u00e9sentant l'entretien du code PHP legacy"},{"@type":"BreadcrumbList","@id":"https:\/\/www.wikeo.be\/blog\/2020\/12\/24\/mettre-a-jour-automatiquement-du-code-php-legacy-vers-php-7-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.wikeo.be\/blog\/"},{"@type":"ListItem","position":2,"name":"Mettre \u00e0 jour automatiquement du code PHP legacy vers PHP 7.4"}]},{"@type":"WebSite","@id":"https:\/\/www.wikeo.be\/blog\/#website","url":"https:\/\/www.wikeo.be\/blog\/","name":"Cr\u00e9er un site internet avec Wikeo : Astuces et conseils","description":"Bien d\u00e9marrer avec Wikeo, astuces r\u00e9f\u00e9rencement et tutoriels","publisher":{"@id":"https:\/\/www.wikeo.be\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wikeo.be\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.wikeo.be\/blog\/#organization","name":"Wikeo","url":"https:\/\/www.wikeo.be\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.wikeo.be\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/06\/android-chrome-512x512-1.png","contentUrl":"https:\/\/www.wikeo.be\/blog\/wp-content\/uploads\/2020\/06\/android-chrome-512x512-1.png","width":512,"height":512,"caption":"Wikeo"},"image":{"@id":"https:\/\/www.wikeo.be\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/wikeocom","https:\/\/x.com\/wikeo","https:\/\/www.linkedin.com\/company\/wikeo\/"]},{"@type":"Person","@id":"https:\/\/www.wikeo.be\/blog\/#\/schema\/person\/584f716ac941dc1506a4da467d54996f","name":"Wikeo","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/5e0a0d2d254145d4a989bbc54394255b58895293f7bfbd03e8b2719884600ffe?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5e0a0d2d254145d4a989bbc54394255b58895293f7bfbd03e8b2719884600ffe?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5e0a0d2d254145d4a989bbc54394255b58895293f7bfbd03e8b2719884600ffe?s=96&d=mm&r=g","caption":"Wikeo"},"sameAs":["https:\/\/www.wikeo.be"],"url":"https:\/\/www.wikeo.be\/blog\/author\/bistory\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/posts\/1214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/comments?post=1214"}],"version-history":[{"count":5,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/posts\/1214\/revisions"}],"predecessor-version":[{"id":1371,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/posts\/1214\/revisions\/1371"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/media\/1223"}],"wp:attachment":[{"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/media?parent=1214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/categories?post=1214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wikeo.be\/blog\/wp-json\/wp\/v2\/tags?post=1214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}