mageekblog - Mot-clé - migrationLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearPourquoi migrer vers PHP 5.4 ? Raison #2urn:md5:3f4f264454a62d57d52343a2fef2b17e2012-02-24T14:00:00+01:002012-02-24T14:23:42+01:00mageekguyPHP XmigrationPHPPHP 5.4<p>Avec un peu de retard à cause d'un virus agressif qui m'a transformé plus ou moins en légume, voici aujourd'hui une autre bonne raison de migrer vers <a href="http://www.php.net">PHP</a> 5.4 dès qu'il sera disponible.</p>
<p>Dans <a href="http://blog.mageekbox.net/?post/2012/02/14/Pourquoi-migrer-vers-PHP-5.4-Raison-1">le premier billet de cette série</a>, j'ai donné comme argument les performances très en hausse de PHP 5.4, notamment en ce qui concerne la gestion de la mémoire.</p>
<p>Cependant, dans celui-ci, je vais vous donner une raison qui n'a strictement rien à voir avec la technique, mais plutôt avec le simple bon sens.</p>
<p>La <a href="http://fr2.php.net/ChangeLog-5.php">version 5.3.0</a> de <a href="http://www.php.net">PHP</a> est disponible depuis le 30 juin 2009, soit depuis presque 3 ans, et depuis, il y a eu pas moins de 10 autres versions mineures, soit en moyenne 3 par année.</p>
<p>PHP 5.3 a apporté un bon nombre de nouvelles fonctionnalités, comme les espaces de noms, les fonctions anonymes, les fermetures lexicales, l'opérateur elvis, le <del><code>goto</code></del>, la syntaxe NOWDOC, le LSB, la constante <code>__DIR__</code>, une gestion de la mémoire améliorée (déjà), des performances en hausses (encore déjà) et tout un tas d'autres choses très intéressantes pour le développeur.</p> <p>Et pourtant, il est démontré que la version majeure de <a href="http://www.php.net">PHP</a> la plus utilisée actuellement est la version 5.2.</p>
<p>À ma connaissance, le premier a avoir réalisé des statistiques sur le taux d'utilisation de PHP 5.3 et à les avoir rendues publiques a été <a href="http://phpadvent.org/2010/usage-statistics-by-ilia-alshanetsky">Ilia Alshanetsky</a>, qui a repris et enrichis le travail effectué auparavant par <a href="http://www.linkedin.com/in/damienseguy">Damien Séguy</a>.</p>
<p>Depuis, <a href="http://blog.pascal-martin.fr/">Pascal Martin</a> s'y est également mis à <a href="http://blog.pascal-martin.fr/post/statistiques-versions-php-2011-09">deux</a> <a href="http://blog.pascal-martin.fr/post/statistiques-versions-php-2011-09">reprises</a>, et il y a quelques jours, j'ai découvert <a href="http://w3techs.com/technologies/history_details/pl-php/5">cette autre statistique</a>.</p>
<p>Toutes ces sources confirment que malgré ses qualités, PHP 5.3 n'est utilisé en moyenne que par un peu plus de 20% des sites web mettant en œuvre <a href="http://www.php.net">PHP</a> et que la grande majorité d'entres eux sont propulsés par PHP 5.2.</p>
<p>Or, PHP 5.2 <a href="http://www.php.net/archive/2010.php#id2010-07-22-1">n'est plus officiellement et activement supportée</a> depuis sa version 5.2.14 qui date maintenant de juillet 2010, soit depuis pratiquement deux ans.</p>
<p>À mon sens, la meilleure raison pour migrer vers PHP 5.4 est donc de faire parti des 70% de développeurs (en faisant un très gros raccourcis) qui utilisent encore PHP 5.2, afin de pouvoir enfin profiter des avantages offerts par les dernières versions du langage et d'outils tels que <a href="http://behat.org/">Behat</a>, <a href="http://www.atoum.org">atoum</a> ou <a href="http://symfony.com/">Symfony 2</a> qui nécessitent au minimum PHP 5.3.</p>
<p>Évidemment, la migration posera quelques problèmes, car la version 5.4 n'est pas compatible à 100% avec la version 5.3, qui n'était déjà pas elle-même compatible à 100% avec la version 5.2.</p>
<p>Cependant, c'est là le prix à payer pour avoir attendu si longtemps, et de plus, tout a été fait pour faciliter le processus de migration.</p>
<p>Une documentation a en effet été rédigée qui explique dans le détail les choses à prendre en compte pour migrer du code tout d'abord <a href="http://fr.php.net/manual/en/migration53.php">de PHP 5.2 à PHP 5.3</a>, puis ensuite de <a href="http://fr.php.net/manual/en/migration54.php">PHP 5.3 à PHP 5.4</a>, et cette dernière sera de plus prochainement disponible en français, si ce n'est pas déjà le cas au moment de la publication de ce billet.</p>
<p>Enfin, migrer ne veut pas forcément dire uniquement migrer du code, et il sera tout aussi pertinent de commencer un projet avec PHP 5.4 lorsqu'il sera disponible en version finale.</p>
<p>Avec une usine de code bien conçue qui met en œuvre des tests unitaires et fonctionnels dans un contexte d'intégration continue, et vu la qualité du code de PHP 5.4, le risque me semble en effet plus que raisonnable, même s'il n'est pas totalement nul.</p>
<p>De plus, en terme d'administration système, il existe des fournisseurs de paquets logiciels alternatifs comme <a href="http://www.dotdeb.org/">Dotdeb</a> qui permettent d'installer très rapidement PHP 5.3 sur un serveur, et il en sera de même pour PHP 5.4 lors de sa sortie.</p>
<p>Et si d'aventure le paquet logiciel ad hoc n'existe pas pour votre système d'exploitation, la compilation de <a href="http://www.php.net">PHP</a> n'a vraiment rien de bien difficile, même si elle peut être fastidieuse, et de plus, elle est relativement bien <a href="http://www.php.net/manual/fr/install.php">documentée</a>.</p>http://blog.mageekbox.net/?post/2012/02/24/Pourquoi-migrer-vers-PHP-5.4-Raison-2#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/331Pourquoi migrer vers PHP 5.4 ? Raison #1urn:md5:959fbc95e4a40ab5de1b4d089f2b89762012-02-14T14:00:00+01:002012-02-15T12:27:38+01:00mageekguyPHP XmigrationperformancePHPPHP 5.4<p>Dans quelques jours (ou semaine(s)), presque deux ans après <a href="http://blog.mageekbox.net/?post/2010/03/17/Repose-en-paix%2C-PHP-6">l'abandon du développement de PHP 6</a>, PHP 5.4 sortira dans sa version finale.</p>
<p>Comme l'indique sa numérotation, elle est considérée par les développeurs du langage comme une version mineure, et il pourrait donc sembler légitime de ne pas l'utiliser et d'attendre la prochaine version majeure avant d'effectuer une migration.</p>
<p>Cependant, ce serait oublier un peu vite que derrière ce 5.4 se cache énormément d'évolutions, parfois mineures mais le plus souvent significatives.</p>
<p>Je vais donc vous présenter, à travers une série de billet, ce qu'apporte PHP 5.4 par rapport aux versions précédentes de PHP, et accessoirement, démontrer que cette version mineure ne l'est finalement pas tant que cela.</p>
<p>Et pour commencer, je vais vous parler de ses performances.</p> <p>Lors de la sortie de PHP 5, en 2005, ses performances étaient significativement en retrait par rapport à PHP 4, mais depuis, chaque nouvelle version a apporté des améliorations à ce niveau.</p>
<p>La branche 5 a définitivement comblé son retard sur la branche 4 à ce niveau avec la version 5.2, et PHP 5.3 est à ce jour la version officielle de <a href="http://www.php.net">PHP</a> la plus rapide, toute version confondue.</p>
<p>Cependant, il faudra bientôt le dire au passé, car PHP 5.4 est en effet à la fois plus rapide et moins consommateur de mémoire que la version 5.3.</p>
<p>Les gains sont de plus très significatifs sur chacun de ces points, car en fonction du contexte, il peut se révéler de 15 à 50% plus rapide que PHP 5.3, et 15 à 40% moins gourmand en mémoire vive.</p>
<p>Du moins, c'est ce que j'avais constaté en <a href="http://blog.mageekbox.net/?post/2010/05/03/PHP-appuie-sur-l-acc%C3%A9l%C3%A9rateur-tout-en-consommant-moins">2010</a> avec le code source issue de l<a href="http://svn.php.net/viewvc/php/php-src/trunk/">a branche de développement</a> de <a href="http://www.php.net">PHP</a>, mais comme depuis cette époque, il a beaucoup évolué, j'ai à nouveau effectué des tests, toujours en me servant de <a href="https://github.com/mageekguy/atoum">atoum</a>, mon framework de tests unitaires pour php 5.3+, et cette fois avec <a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/">la branche 5.4</a>.</p>
<p>Les résultats ont été sans appel, puisque pour exécuter la suite de tests unitaires de atoum, PHP 5.4 est tout simplement 50% plus rapide que PHP 5.3.10 tout en consommant un peu plus de 30% de mémoire en moins.</p>
<p>Cependant, <a href="https://github.com/mageekguy/atoum">atoum</a> fait appel à <a href="http://www.php.net">PHP</a> en ligne de commande et fait de plus énormément appel à des fonctions de très bas niveau comme <code><a href="http://fr2.php.net/proc_open">proc_open()</a></code>.</p>
<p>Son contexte de mise en œuvre est donc très éloigné du contexte d'utilisation classique de <a href="http://www.php.net">PHP</a>, puisque ce dernier est utilisé massivement pour propulser des sites web.</p>
<p>Or, comme le démontre <a href="http://news.php.net/php.internals/57760">les derniers tests</a> effectués par les développeurs du langage, dans un cadre plus classique, PHP 5.4 fait également mieux que PHP 5.3.</p>
<p>Les gains sont variables en fonction des applications testées, mais PHP 5.4 est capable de servir en moyenne 15% de requête par seconde de plus que PHP 5.3, tout en consommant en moyenne 30% de mémoire en moins, tout comme dans le cas de <a href="https://github.com/mageekguy/atoum">atoum</a>.</p>
<p>Dans le cadre d'autres outils en ligne de commande, comme un <a href="http://news.php.net/php.internals/57744">générateur</a> de <a href="http://news.php.net/php.internals/57747">documentation</a>, le gain en terme de vitesse n'est que de 20% et le gain en terme d'occupation mémoire reste toujours aux alentours de 30%.</p>
<p>La version 2012 de PHP 5.4 est donc 30% moins gourmande en mémoire vive que PHP 5.3, indépendament de son contexte d'utilisation.</p>
<p>Le gain en terme de vitesse d'exécution est quand à lui plus aléatoire puisque très dépendant de l'application utilisée.</p>
<p>Cependant, les performances de PHP 5.4 sont suffisament en hausses à tout point de vue pour justifier une migration.</p>
<p>Il y a en effet tout à gagner, en terme de performances, à mettre en œuvre PHP 5.4 dès sa sortie, et plus particulièrement dans le cadre d'un développement piloté par les tests avec <a href="https://github.com/mageekguy/atoum">atoum</a>, dans lequel les tests unitaires sont exécutés très souvent.</p>
<p>Le gain de productivité est en effet tout simplement énorme puisque grâce à PHP 5.4, les tests unitaires s'exécutent alors deux fois plus rapidement.</p>http://blog.mageekbox.net/?post/2012/02/14/Pourquoi-migrer-vers-PHP-5.4-Raison-1#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/330Migration terminéeurn:md5:4e2480a8c4b7f9ef48bbcdc7eeab340b2011-09-29T20:46:00+02:002011-09-29T20:46:00+02:00mageekguyC'est de la merdemigrationonline.net<p>Aujourd'hui, ce blog et quelques autres services ont migré vers un nouveau serveur.</p>
<p>En effet, il y a maintenant 2 mois, mon hébergeur <a href="http://www.online.net">online.net,</a> a décidé d'une manière totalement arbitraire et unilatérale que ma vénérable Dedibox V1, qui s'acquittait parfaitement de ses nombreuses tâches depuis maintenant presque trois ans, était en fin de vie.</p>
<p>En conséquence, sans me demander mon avis ni même me consulter, il m'a prié de migrer vers une autre solution d'hébergement manu militari, sous la forme d'un courrier électronique automatique de résiliation ne donnant absolument aucune information significative.</p> <blockquote><pre>ONLINE SAS
Assistance technique
BP 438 - 75366 Paris CEDEX 08
Service commercial : 01 73 50 31 75
Service technique : 0899 193 788 (1,35e par appel puis 0,34e/min)
Fax : 0899 193 775 (1,35e par appel puis 0,34e/min)
Objet : Résiliation de vos services
Madame, Monsieur,
La demande de résiliation de votre prestation Serveur DEDIBOX V1 numero XXXXXXX
et des services associés ont bien ete pris en compte le 2011-07-15.
Voici la liste des services résiliés:
XXXXXXX - Adresse IP principale
XXXXXXX - Sauvegarde gratuite
En esperant vous revoir prochainement chez Online.
Cordialement,
--
Le service résiliation</pre>
</blockquote>
<p>Avouez que lorsqu'on a jamais rien demandé de tel, cela fait un choc, mais heureusement, une demande d'information au support technique m'a permis d'avoir les précisions nécessaires.</p>
<p>Cependant, je n'ai pas pu m'empêcher de trouver la manière plus que cavalière, d'autant que je n'ai jamais reçu une seule information sur cette migration forcée avant de recevoir le courrier électronique de confirmation de résiliation du service.</p>
<p>De plus, je me suis retrouvé à devoir financer durant la préparation de la migration, qui a pris pas mal de temps pour tout un tas de raisons, deux serveurs au lieu d'un, alors que je n'ai jamais rien demandé.</p>
<p>Pour autant, je n'ai jamais eu un problème avec cet hébergeur, même si j'ai eu la chance de n'avoir jamais eu besoin du support, mon serveur ayant fait preuve d'une fiabilité à toute épreuve avec des périodes d'<a href="http://fr.wikipedia.org/wiki/Uptime">uptime</a> dépassant allègrement les 365 jours.</p>
<p>Du coup, et par facilité car je n'avais pas envie d'éplucher le marché pour trouver une alternative, j'ai tout de même rempilé chez <a href="http://www.online.net">online.net</a> et la migration s'est effectuée en douceur aujourd'hui, deux jours avant l'arrêt définitif de ma V1.</p>
<p>Mais je réfléchirais dorénavant à deux fois avant de recommander <a href="http://www.online.net">online.net</a>...</p>http://blog.mageekbox.net/?post/2011/09/29/Migration-termin%C3%A9e#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/294