mageekblog - Mort de PHP6 + 200 jours - CommentairesLe 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 + 200 jours - mageekguyurn:md5:fdc72c81df9333df947d705966379bcf2010-10-02T08:39:55+02:002010-10-02T07:42:31+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2010/09/30/Mort-de-PHP6-200-jours#c1981" rel="nofollow">Armand</a> : Je cherche une référence au sujet de ces macros sur Internet pour mettre un lien dans le billet, en ce qui concerne les macros, j'en connais déjà pas mal, même si je ne suis pas encore un expert.</p>
<p>Merci en tout cas d'avoir parlé du livre de Sara, qui est pratiquement l'une des seules ressources disponibles sur le sujet.</p>Mort de PHP6 + 200 jours - Armandurn:md5:f1156ebd39f2a92e32ce551ee5d573f22010-10-02T00:27:30+02:002010-10-02T07:38:36+02:00Armand<p>@mageekguy Pour info, le livre "Extending and Embedding PHP" de Sara Golemon, bien que commençant à dater, explique bien toutes les macros de base du fonctionnement interne de PHP. Il y aussi quelques articles sympa sur son blog <a href="http://blog.golemon.com" title="http://blog.golemon.com" rel="nofollow">http://blog.golemon.com</a></p>Mort de PHP6 + 200 jours - Laurentjurn:md5:4c002e4e01f4aebf0c058c06cc3daab82010-10-01T10:40:11+02:002010-10-01T14:14:45+02:00Laurentj<p>@whynot : meuh non, il n'y a pas de manque de communauté sur jelix :-). Le principal dans une communauté d'utilisateurs d'un logiciel, ce n'est pas le nombre, mais sa réactivité, et l'ambiance qu'il y a <img src="/themes/default/smilies/wink.png" alt=";-)" class="smiley" /> Et on essaie d'être réactif au maximum (sur IRC ou le forum). Il y a toujours quelqu'un pour répondre sur IRC ou le forum. Le projet est toujours vivant, évolue tout les jours, utilisé par de plus en plus de gens (y compris des grosses boites). Le seul souci est qu'on manque de moyen pour faire connaitre un peu plus le framework.</p>
<p>Viendez nous rejoindre et nous aider ! <img src="/themes/default/smilies/smile.png" alt=":-)" class="smiley" /></p>Mort de PHP6 + 200 jours - whyNoturn:md5:d183195b41588c7a404c454200dd43932010-10-01T08:31:13+02:002010-10-01T07:52:24+02:00whyNot<p>mageekguy a écrit:<br />
"Dommage, faire switcher de PHP vers un autre langage n'est pas du tout l'objectif de cette série d'articles, bien au contraire"</p>
<p>Et pourtant c'est bien ce qui se passe... je rejoins +100 Korri, suis également en train de switcher sur Python.<br />
C'est + difficile qu'il n'y paraît (nouveaux paradigmes à bien intégrer) mais aussi gros soulagement à se 'désintoxiquer' du php (ça vous tord vraiment la tête ce langage).<br />
Prochaine étape, l'apprentissage de django, parce que Symfony, ZFwk, Cake, CIgniter... ça n'est jamais passé <img src="/themes/default/smilies/wink.png" alt=";)" class="smiley" /> (Jelix oui, mais manque de communauté).<br />
Les offres d'hébergement Python sont encore limitées (pour combien de temps encore...), c'est la seule limite que je vois à une adoption massive du langage (ironie du sort, qui aurait pu penser cela il y a 10 ans ??).<br />
Merci en tout cas pour vos articles qui confirment en tous points mon ressenti.</p>Mort de PHP6 + 200 jours - Nicolas Laforêturn:md5:577b8cf94c054063bea2a5b9c6c221d72010-10-01T08:26:05+02:002010-10-01T07:52:24+02:00Nicolas Laforêt<p>Merci pour le bilan. Avec tes billets j'ai pris l'habitude d'aller jeter un œil a @internals (tu vois tu ne motive pas tout le monde a switcher <img src="/themes/default/smilies/wink.png" alt=";-)" class="smiley" /> ) ...</p>
<p>C'est dommage que les discussions tombent dans le vide comme ca ...</p>
<p>Une bonne roadmap, un but a l'équipe, pour se motiver a sortir de nouvelle version de PHP. Quand on voit que php 5.1 date de 2005 .... PHP a perdu beaucoup de temps, et le rattraper serait faisable avec un peu de "bonne pression" sur les contributeurs. Un but a atteindre serait peut être moteur pour tout le monde, se réunir autour d'un objectif, c'est peut-être ce qu'il manque ?</p>Mort de PHP6 + 200 jours - metagotourn:md5:28c8df2d2c3c259f6482287433b347452010-09-30T19:06:47+02:002010-09-30T18:09:24+02:00metagoto<p>@mageekguy<br />
Je n'ai pas de liens spécifiques. C'est assez "simple" au niveau des sources de php (pour ce point en tout cas).<br />
Les macro sont définies dans zend_API.h. Le but est de construire un tableau static dont chaque ligne correspond à un argument (usage notamment d'operateurs de "stringization" du preproc). Entre autres choses, php associe à chaque fonction (ou méthode) un lien vers ce tableau sous forme de pointer vers une struct zend_arg_info. La reflection récupère et opère sur ce genre d'info quand on lui présente une fonction à analyser.</p>Mort de PHP6 + 200 jours - mageekguyurn:md5:4b79688484bfd63b2738f31fba3a3f332010-09-30T17:20:15+02:002010-09-30T16:37:07+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2010/09/30/Mort-de-PHP6-200-jours#c1969" rel="nofollow">metagoto</a> : J'ai corrigé le billet en conséquence, merci.</p>
<p>D'ailleurs, si tu sais ou trouver de la documentation au sujet de ZEND_ARG_INFO, je suis preneur.</p>
<p>J'ai vu passer un lien sur IRC il y a peu de temps, mais je n'arrive pas à remettre la main dessus.</p>Mort de PHP6 + 200 jours - metagotourn:md5:d5663aa1223bfde59755e12f59b35f552010-09-30T17:06:54+02:002010-09-30T16:13:54+02:00metagoto<p>A propos du bug #52909, \reflectionMethod::getParameters() ne se base pas sur les commentaires spéciaux insérés le code source C. Ces derniers ne servent, de manière programmatique, qu'au système de documentation de php. Le mécanisme de reflection dans php est moins "magique" (dans le sens de se reposer sur des meta info). Il faut dérouler des séries de macro ZEND_BEGIN_ARG_INFO / ZEND_ARG_INFO pour chaque signature de fonction et chaque argument. Quand il s'agit de récupérer la default value d'un argument, là le système inspecte carrément les séries d'opcodes concernés.<br />
Un seul "args info" est responsable des constructeurs de Phar et PharData car ces deux classes partagent les mêmes fonctions au niveau des sources. Au final ce n'est pas un bug de la reflection, mais plutôt un problème de design de phar.</p>Mort de PHP6 + 200 jours - mageekguyurn:md5:14e9f3d0ef1afb24060ad6af2bb402572010-09-30T16:39:57+02:002010-09-30T15:43:29+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2010/09/30/Mort-de-PHP6-200-jours#c1967" rel="nofollow">Korri</a> :Dommage, faire switcher de PHP vers un autre langage n'est pas du tout l'objectif de cette série d'articles, bien au contraire.</p>
<p>Il ne faut pas laisser des petits points négatifs occulter le grand nombre de nouveautés et de modifications positives pour le langage.</p>
<p>PHP a des travers, des défauts, et je suis le premier à le regretter, mais il évolue en conséquence, certes lentement, mais il le fait et je pense qu'il faut lui laisser sa chance, d'autant que tous les langages ont ce type de défaut.</p>Mort de PHP6 + 200 jours - Korriurn:md5:f33cee467ff0d93afc5ecbfacea998492010-09-30T14:36:58+02:002010-09-30T15:39:49+02:00Korri<p>Merci pour tes articles qui me motivent de plus en plus à me mettre au python !</p>
<p>Sinon petite erreur il me semble : \pharData;;__construct(), à ma connaissance on ne peut pas utiliser de ";" (à moins que ça ne soit une nouvelle syntaxe alternative ^_^).</p>Mort de PHP6 + 200 jours - thomasurn:md5:f3e02315b652393ac9385504ce2567502010-09-30T12:26:22+02:002010-09-30T11:30:31+02:00thomas<p>Vraiment passionnant ce post. Merci.</p>Mort de PHP6 + 200 jours - Julien Breuxurn:md5:79dd758e9f5bee24557dfc71e3b8ca5c2010-09-30T11:46:28+02:002010-09-30T11:30:31+02:00Julien Breux<p>$str<a href="http://blog.mageekbox.net/?post/2010/09/30/42" title="42" rel="nofollow">42</a> || $str{42}<br />
Arfff, donc PHP n'a pas pour vocation future de s'harmoniser et prendre en cohérence <img src="/themes/default/smilies/confused.png" alt=":-/" class="smiley" /></p>
<p>@Frédéric<br />
Encore une fois, merci</p>Mort de PHP6 + 200 jours - Ericurn:md5:3ebad03aa98a18806656da0ef7ae9d4b2010-09-30T11:32:23+02:002010-09-30T10:44:39+02:00Eric<p>> puisqu'il n'y a pas si longtemps, je me serais fais proprement jeter.</p>
<p>Rectificatif : tu t'*es* fait jeté. Mais en discutant avec des relations personnelles qui ont de l'influence dans le core, tu as réussi à faire réouvrir ce qui n'aurait jamais du être fermé.</p>
<p>On peut considérer qu'il y a du mieux, mais il n'y a pas non plus de quoi danser. La réaction de base reste un "c'est comme ça" ou un "ce n'est pas possible", et une fermeture du ticket. (pour les vieux, à l'époque on disait ça de l'unicode, des espaces de noms, du LSB, et de plein de choses qui ont été implémentées depuis).</p>
<p>La réponse au __invoke() en est très symptomatique. Il est évident que c'est une incohérence du langage. Visiblement cette incohérence pose problème à plus d'un. On peut le corriger (quand c'est possible), le reconnaitre, ou le rejeter. On choisit la dernière alternative.</p>
<p>-</p>
<p>Sinon moi j'adore suivre l'histoire de { } et <a href="http://blog.mageekbox.net/?post/2010/09/30/" rel="nofollow"></a> avec des popcorn. Et c'est là qu'on voit que le processus de décision est parfois défaillant (même si je n'ai pas de formule magique à proposer pour faire mieux, c'est un constant, pas une critique).</p>
<p>Fut un temps où pour les chaînes de caractères <a href="http://blog.mageekbox.net/?post/2010/09/30/" rel="nofollow"></a> provoquait une erreur et il fallait utiliser { }. Puis peu de temps après { } renvoyait un "deprecated" dans les erreurs et il fallait utiliser <a href="http://blog.mageekbox.net/?post/2010/09/30/" rel="nofollow"></a>. Ca a été (rapidement) modifié suite aux retours négatifs de la communauté et on peut utiliser les deux désormais. Maintenant il est clair qu'on va garder les deux. Si { } devient plus optimisé on peut considérer que c'est désormais çe dernier qu'il faut utiliser.<br />
Un pas en avant, un pas en arrière, etc.</p>
<p>Ce qui est encore plus sympa, c'est que si on implémente unicode à l'avenir (j'y crois encore, je veux y croire), on va avoir droit à un super débat sur la pertinence d'implémenter <a href="http://blog.mageekbox.net/?post/2010/09/30/" rel="nofollow"></a> et {} pour itérer à travers les octets, à travers les code point unicode, ou à travers les symboles (e` étant è). Il va y avoir moultes discussions et je ne donnerai pas ma main au feu qu'on ne va pas dissocier la sématique de <a href="http://blog.mageekbox.net/?post/2010/09/30/" rel="nofollow"></a> (octets) et { } (caractère)</p>
<p>-</p>
<p>Sinon, au risque de paraitre encore très négatif alors que je ne le suis pas comme ça, cette phrase de @internals caricature très bien la façon de fonctionner qu'a eu le groupe à un moment :</p>
<p>"One opinion is it should remain deprecated but without an E_DEPRECATED error, but I'm unsure how that makes sense. To me that says it's not deprecated, but rather, is discouraged (but still for unknown reasons)."</p>
<p>One opinion => rien n'est décidé, on ne sait pas qui décide et comment</p>
<p>remain deprecated but without an E_DEPRECATED => tout et son contraire, on n'ose pas aller jusqu'au bout et on prend des décisions incohérentes</p>
<p>not deprecated, but rather, is discouraged => nuances de salon pour contourner le problème sans le régler</p>
<p>but still for unknown reasons => je ne commenterai même pas tellement la fin me fait rire</p>