mageekblog - Mot-clé - RCLe 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:26874ca5b8cd4cac8d08b0e68e64f63aDotclearPHP 5.4 RC8urn:md5:f7090d8106a887dc0bd3b60d86d038fd2012-02-27T14:13:00+01:002012-03-01T09:37:48+01:00mageekguyPHP XnexenPHPPHP 5.4RC<p>Comme certains l'ont certainement remarqué, <a href="http://www.php.net/archive/2012.php#id2012-02-24-1">PHP 5.4 RC8</a> a été rendue disponible par <a href="http://blog.experimentalworks.net/">David Soria Parra</a> et <a href="http://php100.wordpress.com/">Stanislav Malyshev</a> il y a maintenant un peu plus d'une semaine.</p>
<p>Et comme d'autres l'auront peut être remarqué, je n'ai pas fait mon billet traditionnel à propos de cette énième version RC, et cela pour deux raisons.</p>
<p>Tout d'abord, il s'agit, comme toutes les précédentes versions depuis la RC3, d'une version corrective et je n'ai donc pas grand chose à en dire, puisque je ne trouve pas utile de paraphraser le fichier <code><a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/NEWS?view=markup">NEWS</a></code>.</p>
<p>Et ensuite, ayant des plannings personnels et professionnels très chargés actuellement, je préfère consacrer le peu de temps libre que je peux consacrer à la rédaction de billets à des choses que je juge plus intéressante et pertinente.</p>
<p>En conséquence, j'avais décidé, en mon âme et conscience, de faire l'impasse au sujet de cette RC8 et je me suis donc contenté d'un simple tweet pour signaler sa sortie.</p>
<p>Cependant, ma lecture quotidienne du <a href="http://www.planete-php.fr/">planète PHP français</a> m'a fait changé d'avis.</p> <p>Je suis en effet tombé sur <a href="http://www.nexen.net/actualites/php/20621-php_5.4_rc_8.php">cette actualité</a> de <a href="http://www.nexen.net">Nexen</a> qui m'a laissé pour le moins surprisp, puisqu'elle annonce que PHP 5.4 RC8 serait la dernière RC avant la version finale :</p>
<blockquote><p>L’équipe PHP vient de publier la version RC 8 de PHP 5.4 qui est cette fois la toute dernière RC</p>
</blockquote>
<p>J'ai été surpris, car d'après les dernières informations que j'avais en ma possession au moment de ma lecture du <a href="http://www.planete-php.fr/">planète PHP</a>, une RC9 était prévue.</p>
<p>Or, renseignement pris en suivant le lien fourni par l'actualité de <a href="http://www.nexen.net">Nexen</a>, non seulement RC8 n'est pas la dernière RC, mais la version RC9 de PHP 5.4 est prévue pour le 01/03/2012, soit pour jeudi prochain.</p>
<p>J'ai donc décidé de rétablir la vérité en publiant tout de même un billet sur RC8, billet que vous êtes en train de lire.</p>
<p>J'ajouterais que rien n'indique pour le moment que PHP 5.4 RC9 soit la dernière version RC avant la version finale, même si de plus en plus de développeurs du langage font du lobbying pour que ce soit effectivement le cas.</p>
<p>Il <a href="https://twitter.com/pierrejoye/status/174083617474093056">semble</a> en effet que <a href="http://blog.experimentalworks.net/">David Soria Parra</a> et <a href="http://php100.wordpress.com/">Stanislav Malyshev</a> espèrent faire de la version finale de PHP 5.4 une version parfaite, au risque de ne jamais la sortir, puisque la perfection n'est pas de ce monde.</p>
<p>De plus, certains développeurs poussent du code sur la branche 5.4 sans passer par la validation de <a href="http://blog.experimentalworks.net/">David Soria Parra</a> et <a href="http://php100.wordpress.com/">Stanislav Malyshev</a>, au risque d'introduire des régressions dans du code stabilisé.</p>
<p>Cela nécessite donc de leur part une revue de code à postériori, ainsi qu'une nouvelle RC pour détecter les éventuels problèmes qui auraient pu leur échapper.</p>
<p>Bref, il semble que la communauté manque encore un peu de discipline.</p>
<p>Cela ne m'empêche cependant pas de vous encourager à <a href="http://qa.php.net/">télécharger</a> cette RC8 et à la tester, évidemment sur des serveurs ad hoc, c'est à dire de test et non de production, et à signaler tout problème éventuel afin de faire de PHP 5.4 la version la plus <q>parfaite</q> possible.</p>http://blog.mageekbox.net/?post/2012/02/27/PHP-5.4-RC8#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/332PHP 5.4 RC4urn:md5:498aaa2ac87d45af918084512c6cb7752011-12-28T21:30:00+01:002011-12-29T11:05:18+01:00mageekguyPHP XPHPPHP 5.4RCRelease Candidate<p>Je pense que cela est passé relativement inaperçu entre les bons repas, les coupes de champagnes et le déballage des cadeaux, mais une version RC4 de <a href="http://www.php.net">PHP</a> 5.4 a été <a href="http://news.php.net/php.internals/57062">livrée le 24 décembre</a> par les <q>Pères Noël</q> <a href="http://blog.experimentalworks.net/">David Soria Parra</a> et <a href="http://php100.wordpress.com/">Stanislav Malyshev</a>.</p>
<p>Point de version finale sous le sapin, donc, contrairement à ce que j'avais espéré dans <a href="http://blog.mageekbox.net/?post/2011/12/09/PHP-5.4-RC3">mon précédent billet</a> à ce sujet, pusiqu'il semble qu'il y ait encore un peu de travail nécessaire pour faire de PHP 5.4 une version fiable et de qualité.</p>
<p>Cela est d'ailleurs confirmé par l'étude du fichier <code><a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/NEWS?view=markup">NEWS</a></code>, qui annonce, comme précédemment dans le cas de la <a href="http://blog.mageekbox.net/?post/2011/12/09/PHP-5.4-RC3">RC3</a>, une version <abbr title="Release Candidate">RC</abbr> supplémentaire qui portera fort logiquement le nom de RC5.</p> <p>Deux problèmes assez importants, l'un relatif à un crash du langage lors d'un appel à une méthode statique à l'aide d'une expression et l'autre à une fuite de mémoire, ont en effet été corrigé depuis Noël.</p>
<p>De plus, le processus de compilation a été consolidé afin de pouvoir compiler PHP sur les distributions de Linux les plus récentes.</p>
<p>La version finale de PHP 5.4 risque donc de ne pas être diffusée avant la fin de l'année, et je table maintenant sur une sortie vers la fin de janvier, la RC5 devant montrer le bout de son nez aux alentours du 7 janvier 2012.</p>
<p>Fonctionnellement parlant, cette version RC4 n'apporte rien de bien nouveau, mis à part l'ajout de la directive de configuration <code>max_input_vars,</code> qui permet, comme l'indique le fichier <code><a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/UPGRADING?view=markup">UPGRADING</a></code>, de définir le nombre maximum de variables, par défaut 1000, pouvant être contenu par les variables <code>$_GET</code>, <code>$_POST</code> et <code>$_COOKIES</code>.</p>
<p>Pour la petite histoire, cette directive a été ajoutée suite à la présentation lors du <a href="http://events.ccc.de/congress/2011/wiki/Main_Page">28C3</a> d'un nouveau type d'attaque par déni de service, nommé <a href="https://cryptanalysis.eu/blog/2011/12/28/effective-dos-attacks-against-web-application-plattforms-hashdos/">hashDOS</a>, et exploitant les faiblesses des <a href="http://fr.wikipedia.org/wiki/Table_de_hachage">tables de hachage</a> en terme de performance dans certain contexte d'utilisation. </p>
<p>Comme à mon habitude, j'ai également étudié le journal du <a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/">dépôt subversion de PHP 5.4</a>, et comme d'habitude, il a révélé bien plus de détails sur le travail effectué par les développeurs du langage entre la <a href="http://blog.mageekbox.net/?post/2011/12/09/PHP-5.4-RC3">RC3</a> et la RC4.</p>
<p>Tout d'abord, j'ai eu la surprise d'y lire le nom de <a href="http://www.jmfontaine.net/">Jean-Marc Fontaine</a>, ami et président de l'<a href="http://afup.org/"><abbr title="Association Française des Utilisateurs de PHP">AFUP</abbr></a>, puisqu'il a <a href="http://svn.php.net/viewvc?view=revision&revision=320774">contribué à cette version</a> via l'ajout de tests unitaires relatifs à <code><a href="http://fr.php.net/spl_autoload">spl_autoload()</a></code> et <code><a href="http://fr.php.net/stream_context_set_option">stream_context_set_option()</a></code>.</p>
<p>Ce journal m'a également appris que la variable <code>$_SERVER["SERVER_NAME"]</code> est maintenant également renseigné par le <a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4">serveur HTTP intégré à PHP 5.4</a>.</p>
<p>J'y ai également appris que plusieurs problèmes relatifs à la mise en œuvre des <a href="http://blog.mageekbox.net/?post/2010/12/06/Nouvelle-conf%C3%A9rence-%21">traits</a> avaient été corrigés, en étudiant la liste des nombreux bugs résolus n'apparaissant pas dans le fichier <span class="Apple-style-span" style="color: rgb(102, 102, 102); font-family: 'Courier New', Courier, monospace; font-size: 13px; font-weight: bold; "><a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/NEWS?view=markup">NEWS</a></span> :</p>
<blockquote><pre><code>Fixed bug #60477 (Segfault after two multipart/form-data POST requests)
Fixed bug #60489 (Simple Typo In php.ini Files)
Bug fixed #48877 - bindValue and bindParam do not work for PDO Firebird
Fixed bug #60455: stream_get_line misbehaves if EOF is not detected together with the last read
bug fixed #48877 - bindValue and bindParam do not work for PDO Firebird
Fixed bug #60536 (Traits Segfault)
Fixed bug #60523 (PHP Errors are not reported in browsers using built-in SAPI)
Implement the solution for isset/string offsets, fix bug #60362
Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
Fixed bug #60570 (http wrapper leaks context resource if request fails/is redirected)</code></pre></blockquote>
<p>Enfin, parmi la grosse quarantaine de modifications effectuées sur le code source de <a href="http://www.php.net">PHP</a> entre la <a href="http://blog.mageekbox.net/?post/2011/12/09/PHP-5.4-RC3">RC3</a> et cette RC4 figure également les habituelles optimisations et corrections de tests unitaires et qui devraient faire de PHP 5.4 la version la plus fiable et la plus performante jamais diffusée.</p>
<p>Pour conclure, je rappellerais que malgré cela, cette version RC4 n'est toujours pas qualifiée pour être utilisée en production et doit donc en conséquence être testée sur un serveur dédié à cette tâche.</p>
<p>De plus, comme d'habitude, une version <a href="http://windows.php.net/qa/">spécifique à Windows</a> est disponible.</p>http://blog.mageekbox.net/?post/2011/12/28/PHP-5.4-RC4#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/314PHP 5.2.15 RC1 et PHP 5.3.4 RC1 sont disponibles au téléchargement !urn:md5:5535b346d55033ae5a5084f2a52b31e92010-11-18T23:04:00+01:002010-11-18T23:05:32+01:00mageekguyPHPPHPRC <p>La nouvelle vient de tomber sur <a href="http://news.php.net/php.internals/50371">internals@</a>, la liste de diffusion des contributeurs à <a href="http://www.php.net">PHP</a>.</p>
<p>Les versions <a href="http://fr.wikipedia.org/wiki/Version_d%27un_logiciel#Version_admissible_ou_pre-release"><abbr title="Release Candidate">RC</abbr></a> de PHP 5.2.15 et de PHP 5.3.4 sont disponibles dès à présent au téléchargement :</p>
<ul><li><a href="http://downloads.php.net/ilia/php-5.2.15RC1.tar.bz2">PHP 5.2.15 RC1</a></li>
<li><a href="http://downloads.php.net/johannes/php-5.3.4RC1.tar.bz2">PHP 5.3.4 RC1</a></li>
</ul>
<p>Les versions Windows sont également <a href="http://windows.php.net/qa/">disponibles</a>.</p>
<p>Attention, ces versions ne sont pas considérées comme stable et ne doivent pas être utilisée en production.</p>
<p>Pour information, il y aura normalement des versions RC2 dans quinze jours, avant la sortie des versions stables à la mi-décembre.</p>
<p>Ces versions mineures sont avant tout des versions correctives, et en conséquence n'apportent aucune nouvelle fonctionnalité majeure au langage.</p>
<p>Ces dernières devraient apparaître avec PHP 5.4, dont la sortie de la version <a href="http://fr.wikipedia.org/wiki/Version_d%27un_logiciel#Version_alpha">alpha</a> est prévue pour le 24 novembre, tandis que la diffusion de la version stable est actuellement prévue dans la première moitié de l'année 2011.</p>http://blog.mageekbox.net/?post/2010/11/18/PHP-5.2.15-RC1-et-PHP-5.3.4-RC1-sont-disponibles-au-t%C3%A9l%C3%A9chargement-%21#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/211RC 2 pour PHP 5.2 et 5.3urn:md5:dbbbe5baa5f21db431df9f60ba93f48f2010-07-07T15:17:00+02:002010-07-07T15:17:00+02:00mageekguyPHPJohannes ShlütersPHP 5.2PHP 5.3RC <p>Dans la continuité de <a href="http://blog.mageekbox.net/?post/2010/07/07/../?post/2010/06/24/RC-pour-PHP-5.2-et-5.3">leurs
premières <abbr title="Release Candidate">RC</abbr> respectives</a>,
les versions <abbr title="Release Candidate">RC</abbr> 2 de PHP 5.2 et
PHP 5.3 sont disponibles depuis le 2 juillet 2010.</p>
<p>Vous allez me dire que je suis à la ramasse temporellement parlant, et vous aurez bien raison, mais je voyage beaucoup actuellement, et en conséquence, je n'ai pas forcément un accès aisé à mes sources, et de plus, je n'ai pas forcément le temps ni la possibilité de publier mes informations.</p>
<p>Cette explication étant maintenant terminée, je peux maintenant vous dire que ces deux nouvelles versions ont été rendues publiques par <a href="http://schlueters.de/blog/">Johannes Shlüters</a>, le <q>Release Master</q> de la branche 5.3 de <a href="http://www.php.net/">PHP</a>.</p>
<p>Elles seront éventuellement suivies chacune par une troisième version ou une version <a href="http://fr.wikipedia.org/wiki/Release"><q>release</q></a> dans deux semaines, soit aux environs du 15 juillet 2010.</p>
<p>Comme d'habitude, je vous invite à tester ces deux versions afin de détecter les problèmes éventuels et ainsi améliorer la qualité
de <a href="http://www.php.net/">PHP</a>, mais uniquement sur des environnements dédiés à cela et surtout pas en production.</p>
<p>Le code source de PHP 5.2 est disponible <a href="http://downloads.php.net/ilia/php-5.2.14RC2.tar.bz2">ici</a> et
celui de PHP 5.3 est disponible <a href="http://downloads.php.net/johannes/php-5.3.3RC2.tar.bz2">là</a>.</p>http://blog.mageekbox.net/?post/2010/07/07/RC-2-pour-PHP-5.2-et-5.3#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/153Mort de PHP6 + 110 joursurn:md5:45a21a2b827bc79d26ef578437a849ad2010-06-30T07:00:00+02:002010-06-30T07:00:00+02:00mageekguyPHP Xforum PHP 2010internals@PHP XPHP6RCtrunkZend Engine<p>Est-ce la période de l'année qui veut cela ?</p>
<p>Est-ce parce que le plus gros du travail a été fait ?</p>
<p>Est-ce parce que les <a href="http://blog.mageekbox.net/?post/2010/06/24/RC-pour-PHP-5.2-et-5.3">deux prochaines versions de PHP 5.2 et PHP 5.3</a> sont <abbr titlte="Release Candidate">RC</abbr> actuellement ?</p>
<p>Il y a plusieurs explications possibles au fait que le rythme d'évolution du <a href="http://svn.php.net/viewvc/php/php-src/trunk/">trunk</a> de <a href="http://www.php.net">PHP</a> s'est considérablement ralenti sur les vingts derniers jours.</p>
<p>C'est très nettement visible sur l'electro-encéphalogramme de <a href="http://www.php.net">PHP</a>, réalisé à l'aide de <code><a href="http://blog.mageekbox.net/?post/2010/04/22/L-%C3%A9lectro-enc%C3%A9phalogramme-de-PHP-existe-%21">svneeg</a></code> :</p>
<p><img title="trunkPHP20100630.png, juin 2010" style="margin: 0 auto; display: block;" alt="" src="http://blog.mageekbox.net/public/trunkPHP20100630.png" /></p>
<p>Au total, les dix derniers jours n'ont vu passé qu'une petite trentaine de modifications.</p> <p>Et pour la plupart, il ne s'agit que de corrections de bugs et d'optimisation et de nettoyage du code.</p>
<p>Ainsi, les bugs <a href="http://bugs.php.net?id=52134">#52134</a>,
<a href="http://bugs.php.net?id=52137">#52137</a>,
<a href="http://bugs.php.net?id=47588">#47588</a>,
<a href="http://bugs.php.net?id=52162">#52162</a>,
<a href="http://bugs.php.net?id=52138">#52138</a>,
<a href="http://bugs.php.net?id=52186">#52186</a>,
<a href="http://bugs.php.net?id=52183">#52183</a>,
<a href="http://bugs.php.net?id=52193">#52193</a>,
<a href="http://bugs.php.net?id=52160">#52160</a>,
<a href="http://bugs.php.net?id=51421">#51421</a>,
<a href="http://bugs.php.net?id=48930">#48930</a> et
<a href="http://bugs.php.net?id=49276">#49276</a> ont été corrigés.</p>
<p>Parmi les changements quelque peu significatifs, l'intégration de <a href="http://www.sqlite.org/">sqlite</a> dans sa version 3 est maintenant effective.</p>
<p>De même, le code source de l'extension <a href="http://fr.php.net/manual/fr/book.oci8.php">OCI8</a> a été préparé pour supporter <a href="http://www.oracle.com/technology/tech/oci/htdocs/oci_faq.html#A2326"><abbr title="Oracle Call Interface">OCI</abbr></a> dans sa version 1.4.2.</p>
<p>Au final donc, rien de bien croustillant à se mettre sous la dent, d'autant que la liste de diffusion des contributeurs, <a href="http://news.php.net/group.php?group=php.internals">internals@</a>, a été calme également.</p>
<p>Il y a bien eu le <a href="http://news.php.net/php.internals/48840">commencement d'un débat</a> concernant l'utilisation de <a href="http://www.opengroup.org/onlinepubs/009695399/functions/lstat.html"><code>lstat</code></a> dans le <a href="http://fr.wikipedia.org/wiki/Zend_Engine">Zend Engine</a> et son impact sur les performances de PHP, mais il n'aura été finalement qu'un <a href="http://news.php.net/php.internals/48952">pétard mouillé</a>.</p>
<p>Pour rappel, le <a href="http://fr.wikipedia.org/wiki/Zend_Engine">Zend Engine</a> utilise massivement cette fonction, pratiquement à chaque fois qu'un fichier est manipulé.</p>
<p>Or, il s'agit d'un appel système très gourmand en ressource, et si votre code inclus et/ou manipule un grand nombre de fichiers, vous pouvez constater une dégradation importante des performances.</p>
<p>C'est pourquoi <a href="http://www.php.net/">PHP</a> dispose d'un système de cache qui permet de limiter l'utilisation de <a href="http://www.opengroup.org/onlinepubs/009695399/functions/lstat.html"><code>lstat</code></a>.</p>
<p>Cependant, la taille par défaut de ce cache est sous-dimensionné, et il est donc parfois nécessaire de la modifier dans votre <a href="http://php.net/manual/fr/ini.core.php">fichier de configuration de PHP</a> à l'aide de la directive <code>realpath_cache_size</code>, disponible depuis PHP 5.1, afin d'obtenir <a href="http://tag1consulting.com/blog/nfs-drupal-and-realpath-cache">des performances optimales</a>.</p>
<p>Et si cela n'est pas suffisant, des outils tel qu'<a href="http://php.net/manual/fr/book.apc.php">APC</a> dispose d'un mécanisme encore plus puissant afin de faire sauter ce goulot d'étranglement.</p>
<p>En parlant d'<a href="http://php.net/manual/fr/book.apc.php">APC</a> justement, il est toujours question de l'intégrer dans le <a href="http://svn.php.net/viewvc/php/php-src/trunk/">trunk</a> de <a href="http://www.php.net/">PHP</a>, mais pour l'instant, la décision n'a pas été prise.</p>
<p>Les <a href="http://news.php.net/php.internals/48970">derniers échanges</a> sur le sujet indiquait qu'<a href="http://php.net/manual/fr/book.apc.php">APC</a> est actuellement en train d'évoluer et qu'en conséquence, il représente une inconnue trop importante pour le moment pour pouvoir être intégré.</p>
<p>Le développement de <a href="http://www.php.net/">PHP</a> semble donc être dans une phase de stabilisation.</p>
<p>Il y a bien encore des discussions en cours, mais dans les faits, le <a href="http://svn.php.net/viewvc/php/php-src/trunk/">trunk</a> n'évolue plus de manière significative depuis une vingtaine de jours.</p>
<p>Je vais donc prendre un risque en sortant pour une fois de la réserve que je m'impose en ce qui concerne ce type de billet, puisque je vais me lancer dans une prédiction.</p>
<p>Au vu du travail qui a été déjà accomplit au cours des <a href="http://blog.mageekbox.net/?post/2010/05/15/Mort-de-PHP6-60-jours">110</a> <a href="http://blog.mageekbox.net/?post/2010/05/25/Mort-de-PHP6-70-jours">et</a> <a href="http://blog.mageekbox.net/?post/2010/06/03/Mort-de-PHP6-80-jours">quelques</a> <a href="http://blog.mageekbox.net/?post/2010/06/11/Mort-de-PHP6-90-jours">jours</a> <a href="http://blog.mageekbox.net/?post/2010/06/21/Mort-de-PHP6-100-jours">précédents</a>, et du rythme actuel du développement, je pense qu'il est raisonnable de penser qu'une version <abbr title="Release Candidate">RC</abbr> du langage soit rendue publique début novembre, pourquoi pas au moment du <a href="http://www.afup.org/pages/forumphp2010/">prochain forum PHP</a> organisé par l'<a href="http://www.afup.org">AFUP</a>, et je pencherais pour une sortie de la version finale début janvier.</p>
<p>Évidement, je n'ai aucune information officielle, ni même officieuse, pour étayer cette <q>intuition</q>, <a href="http://news.php.net/php.internals/48974">bien au contraire</a>, et personnellement, au vu du passé du langage, je ne parierais pas un centime dessus, mais... tout de même, elle me semble raisonnable.</p>
<p>Et puis, elle ferait un si beau cadeau de noël et cela tomberais si bien pour ma conférence <q><a href="http://blog.mageekbox.net/?post/2010/06/15/Merci-twitter-%21">PHP : Retour vers le futur !</a></q> que j'ai proposé pour le <a href="http://www.afup.org/pages/forumphp2010/">forum PHP 2010</a> !</p>http://blog.mageekbox.net/?post/2010/06/30/Mort-de-PHP6-110-jours#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/150