mageekblog - Mot-clé - doctrine 2Le 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:26874ca5b8cd4cac8d08b0e68e64f63aDotclearMort de PHP6 + 290 joursurn:md5:7bf04c40923bab3edfa1040c506c020c2011-01-04T22:30:00+01:002011-01-04T22:55:20+01:00mageekguyPHP Xdoctrine 2internals@mysqlndpatchworkPHP XsplFileInfo<p>Après <a href="http://blog.mageekbox.net/?post/2011/01/04/?post/2010/12/23/Mort-de-PHP6-280-jours">le dernier billet de 2010</a>, voici fort logiquement le premier billet de 2011 à propos du développement de <a href="http://www.php.net/">PHP</a>.</p>
<p>Et malheureusement, le titre traditionnel depuis maintenant <a href="http://blog.mageekbox.net/?post/2011/01/04/?post/2010/03/25/Mort-de-PHP6-10-jours">près de 300 jours</a> est toujours d'actualité, car nouvelle année ne veut nullement dire nouvelle version, dans le monde des développeurs de <a href="http://www.php.net/">PHP</a>, ni même d'ailleurs bonnes résolutions.</p>
<p>En effet, si une nouvelle version du langage est bien en cours de
finalisation, sa diffusion publique n'est pas à l'ordre du jour pour le
moment, même si j'ai bon espoir qu'elle intervienne en cours d'année.</p>
<p>Le titre de ces chroniques ne changera donc pas prochainement, et je
pense que vous allez pouvoir le lire encore quelques temps, d'autant que
le développement du langage n'a pas été des plus actifs en cette
période de fêtes.</p> <p>Sur la liste de diffusion des contributeurs, <a href="http://news.php.net/group.php?group=php.internals">internals@</a>, il n'y a rien de bien croustillant à ce mettre sous la dent.</p>
<p>La proposition d'inclure un langage de <a href="http://fr.wikipedia.org/wiki/Macro-d%C3%A9finition">macro-définitions</a> similaire à celui du C faite lors de la période précédente a été <a href="http://news.php.net/php.internals/51132">définitivement enterrée</a>, fermement et sans violence.</p>
<p>Il faut dire que le sujet revient régulièrement et que les développeurs, par la force des choses, sont parfaitement rompus à cet exercice, et sont de plus, pour une fois, approximativement sur la même longueur d'onde sur ce point précis.</p>
<p>Dans un registre similaire, <a href="http://news.php.net/php.internals/51153">Nicolas Grekas</a>, l'auteur du framework <a href="http://pa.tchwork.com/">patchwork</a>, présenté lors du <a href="http://pa.tchwork.com/wiki/?title=Forum_PHP_de_l%27AFUP_2009&redirect=no">forum PHP 2009</a>, a fait une proposition visant à supprimer le support des espaces de nommage pour les fonctions et les constantes.</p>
<p>En contrepartie, il a proposé de donner la possibilité d'inclure tout ce que contient un espace de nommage uniquement à la demande, via une modification du mécanisme d'<a href="http://fr.php.net/autoload"><code>autoload</code></a>.</p>
<p>Le moins que l'on puisse dire est que ses suggestions ont été <a href="http://news.php.net/php.internals/51166">très loin</a> de remporter tous les suffrages, mais il faut dire que la forme n'était pas à mon sens la mieux choisie, puisque <a href="http://news.php.net/php.internals/51153">Nicolas</a> a tenté de démontrer que sa proposition était intéressante en disant que d'après lui, personne ne définis de fonctions et de constantes dans un espaces de nommage.</p>
<p>Or, ce n'est pas parce que <a href="http://www.doctrine-project.org/blog/doctrine2-released">Doctrine 2</a> ne le fait pas qu'il n'y a pas quelqu'un dans le monde qui le fait, ce qui est d'ailleurs le cas puisque <a href="https://svn.mageekbox.net/repositories/atoum/trunk/scripts/runners/autorunner.php">Atoum</a> dispose de constantes rattachées à son espace de nommage, par exemple.</p>
<p>Je précise que je me permet cette remarque car je pense avoir indirectement poussé Nicolas à faire cette proposition, suite à une discussion que j'ai eu récemment avec <a href="http://www.geek-directeur-technique.com/">Amaury Bouchard</a>, et que même si ce n'est pas le cas, j'espère que <a href="http://news.php.net/php.internals/51153">Nicolas</a> ne se découragera pas et réitérera l'expérience dans un proche avenir.</p>
<p>Dans un autre registre, un <a href="http://news.php.net/php.internals/51158">patch</a> a été proposé pour améliorer les performances du langage, grâce à une série d'optimisation au niveau du Zend Engine et au prix d'une légère augmentation de l'empreinte mémoire, et après <a href="http://news.php.net/php.internals/51177">une relecture attentive</a>, il devrait être intégré dans la version de développement.</p>
<p>Enfin, pour en terminer avec <a href="http://news.php.net/group.php?group=php.internals">internals@</a>, <a href="http://news.php.net/php.internals/51149">Rune Kaagaard</a> a proposé de rédiger la grammaire de <a href="http://www.php.net">PHP</a> à l'aide de la notation <abbr title="Extended Backus-Naur Form"><a href="http://fr.wikipedia.org/wiki/Extended_Backus-Naur_Form">EBNF</a></abbr>, sur le modèle de <a href="http://docs.python.org/dev/reference/grammar.html">ce qui existe pour Python</a>.</p>
<p>Son initiative a été perçue comme <a href="http://news.php.net/php.internals/51151">une très bonne chose</a> pour le langage, car il n'existe à ce jour aucun outil de ce type, principalement parce qu'il n'existe aucune documentation sur ce sujet et que la syntaxe du langage contient un grand nombre de cas particuliers et plusieurs façon, <a href="http://fr.php.net/manual/en/control-structures.alternative-syntax.php">syntaxiquement parlant</a>, d'écrire un même code.</p>
<p>L'actualité du <a href="http://svn.php.net/viewvc/php/php-src/trunk/">trunk</a>, qui contient la version de développement de <a href="http://www.php.net">PHP</a>, n'a pas été plus trépidante que celle de l<a href="http://news.php.net/group.php?group=php.internals">a liste de diffusion des contributeurs</a>.</p>
<p>Le lot habituel de correction et d'optimisation est toujours présent, ainsi que le lot de correction de bugs, puisque ceux numérotés <a href="http://bugs.php.net?id=53606">#53606</a>,
<a href="http://bugs.php.net?id=53603">#53603</a>,
<a href="http://bugs.php.net?id=53612">#53612</a> et
<a href="http://bugs.php.net?id=53629">#53629</a> ont été éradiqués.</p>
<p>La version de développement de PHP, suite à la demande <a href="http://bugs.php.net/bug.php?id=48767">#48767</a>, dispose également maintenant de la méthode <code>\splFileInfo::getExtension()</code>, qui permet d'obtenir l'extension d'un fichier à la manière de <code><a href="http://fr.php.net/pathinfo">pathinfo()</a></code> lorsqu'elle est appelée avec la constante <code>PATHINFO_EXTENSION</code> en deuxième argument.</p>
<p>L'extension <a href="http://fr.php.net/manual/en/book.mysqlnd.php"><code>mysqlnd</code></a>, le pilote natif pour <a href="http://mysql.com/">mysql</a>, a également été modifiée afin de pouvoir mieux supporter les greffons à l'avenir, tandis qu'il n'est plus possible de transformer une chaîne de caractères en objet en définissant dynamiquement une propriété, puisque lorsqu'il est configuré en mode strict, <a href="http://www.php.net">PHP</a> générera dorénavant une erreur.</p>
<p>Le code suivant produira donc une erreur de type <code>E_STRICT</code> avec les prochaines versions du langage :</p>
<blockquote><pre><code><?php<br /><br />$x = ''; // ou null, ou false.<br />$x->baz = 1;<br /><br />?></code></pre></blockquote>
<p>Enfin, pour terminer sur une note d'humour, un grand nombre de fichiers, pour ne pas dire la totalité, ont été impactée par cette <a href="http://svn.php.net/viewvc/php/php-src/trunk/TSRM/TSRM.c?r1=296679&r2=306938&pathrev=306938">modification</a>, et peut être faut-il y voir la carte de vœux des développeurs du langage pour 2011.</p>
<p>Cette rétrospective est maintenant terminée, vous pouvez reprendre une activité normale.</p>http://blog.mageekbox.net/?post/2011/01/04/Mort-de-PHP6-290-jours#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/227