mageekblog - Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - 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:26874ca5b8cd4cac8d08b0e68e64f63aDotclearSaurez-vous trouver les paradoxes contenus dans ce code PHP ? - mageekguyurn:md5:9875442d711e2f73fd1ef2accbac67e22009-10-14T16:27:28+02:002009-10-14T15:27:35+02:00mageekguy<p>@Stopher :</p>
<p>C'est par <a href="http://blog.mageekbox.net/?post/2009/10/14/Retour-sur-les-paradoxes" rel="nofollow">la que cela se passe</a>.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Stopherurn:md5:95d8a3f144324a3a1d26b12a70e4160a2009-10-14T14:01:51+02:002009-10-14T15:27:35+02:00Stopher<p>Oui mais maintenant , nous voulons le mot de la fin <img src="/themes/default/smilies/smile.png" alt=":-)" class="smiley" /></p>
<p>Y avait-il autre chose à dire ?</p>
<p>Ch.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - petitchevalrouxurn:md5:c686514461c278b611ff307c457b8d7f2009-10-14T13:52:10+02:002009-10-14T15:27:35+02:00petitchevalroux<p>Autant pour moi, en tout cas même si les comm' sont fastidieux à lire je trouve l'idée du code review plutôt sympa et si ça peut faire avancer le schmilblick tant mieux :D</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - mageekguyurn:md5:6db273ff91ce3cac14ec800c86d861fd2009-10-14T12:09:47+02:002009-10-14T11:47:36+02:00mageekguy<p>@petitchevalroux :</p>
<p>Tu arrives après la bataille, c'est pourquoi il y a toujours quasiement le même commentaire.</p>
<p>Chaque lecteur intéressé a laissé un commentaire, et j'ai tout publié en même temps.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - petitchevalrouxurn:md5:ad704f1356791440f683d810e4b47a352009-10-14T11:19:24+02:002009-10-14T11:08:42+02:00petitchevalroux<p>Euh je comprends pas trop l'interet de commenter 500 fois avec les mêmes réponses : C'est un concourt de SEO pour placer un max d'autoload et de class_exists dans la page ou quoi ? :D</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Arkhurn:md5:a31fb0c7fb5763431e634042083c77a72009-10-14T09:25:58+02:002009-10-14T09:41:27+02:00Arkh<p>1/ Autoload n'est appelé que si la classe n'existe pas : pas besoin de tester si elle existe.<br />
2/ Pas besoin d'utiliser require_once non plus : si la classe n'existe pas, c'est que le fichier n'a jamais été inclu. Bon, on peut imaginer que le fichier inclu est mal branlé et peut ne pas définir la classe. Mais à ce point là, c'est que beaucoup de choses déconnent.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - thomurn:md5:5ea40353223b326330444e6eb89c308f2009-10-14T09:00:47+02:002009-10-14T08:25:23+02:00thom<p>Moi je dirais bien, que la classe ainsi définie, n'est pas chargée. Au contraire, si la classe n'est pas définie, on inclue le fichier contenant la dîtes classe.... bizarre!</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Pascal MARTINurn:md5:5487a59d36469d72057f023e31efe0bd2009-10-13T22:12:34+02:002009-10-14T08:25:23+02:00Pascal MARTIN<p>Tester dans une fonction d'autoload, appelée seulement pour une classe non trouvée, si la classe existe ?</p>
<p>Ce qui signifierait :<br />
- appel inutile à class_exists : renverra toujours false (d'autant plus que le second paramètre est à false)<br />
- et j'ajouterai que le require_once pourrait être transformé en require tout court</p>
<p>Ou il y a autre chose ? ^^</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - plurielsurn:md5:dd0427a30039d712c083481261d8e15e2009-10-13T20:48:50+02:002009-10-14T08:25:23+02:00pluriels<p>je me lance :<br />
- si je suis dans autoload, c'est que la classe n'existe pas ?<br />
- dirname(__FILE__).'/../classes/'.$className.'.php')<br />
L'utilisation de dirname avec juste après "/../", c'est bizarre non ?</p>
<p>Et quel est ce framework de compétition ?</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - EnZurn:md5:1f978bcab6a75ba3392939f1e01333c52009-10-13T19:08:10+02:002009-10-14T08:25:23+02:00EnZ<p>je dirais qu'il manque realpath() pour l'include, et ensuite le require_once est inutile puisque il verifie si la classe exist. require_once "inclut" le fichier tout en verifiant que le contenu n'a pas été chargé, ou un truc dans le genre. (je suis qu'un autodidacte pardonnez moi ^^)</p>
<p>Peace</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - jp.foxurn:md5:fafbfa1473cd8c8fb4ebcf74f3136fc42009-10-13T18:06:44+02:002009-10-14T08:25:23+02:00jp.fox<p>A mon avis :</p>
<p>1- il est inutile de tester l'existence de la classe dans la fonction autoload car si cette fonction est appelée, c'est que la classe n'existe pas.</p>
<p>2- Il est aussi inutile de tester si la classe existe si on la charge avec un require_once car ce dernier vérifie que le fichier n'a pas déjà été inclus (à condition que ma définition de la classe soit uniquement dans un fichier, ce qui est un postulat acceptable)</p>
<p>L'autoload n'est pas génial en terme de perf, mais là ça aide vraiment pas.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Xarchurn:md5:2f09ca6ccd5237981b0827256f83c7e52009-10-13T17:57:09+02:002009-10-14T08:25:23+02:00Xarch<p>Bah c'est simple, si la fonction __autoload est appelé, la classe n'existe pas, donc inutile d'utilise class_exists.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Maturn:md5:a7c82dede48e91a13ca8fc6456196ce42009-10-13T17:17:38+02:002009-10-14T08:25:23+02:00Mat<p>J'en vois un : le test inutile du class_exists() pour vérifier que la classe n'est pas définie alors que l'autoload est appelé spécifiquement dans ce cas.</p>
<p>Pour le 2eme... je pencherais sur l'utilité de l'utilisation du require"_once()". Mais faut voir le reste du projet, il pourrait etre justifiable dans certains cas.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Fabienurn:md5:72787ad5e08ebda425d6130d05f1b4682009-10-13T17:05:51+02:002009-10-14T08:25:23+02:00Fabien<p>Premier paradoxe, je dirais que, à priori, si la fonction __autoload est invoquée c'est que la classe n'existe pas donc la condition if ne sert pas à grand chose.<br />
<br />
Ensuite, le require_once devrait plutôt être un require. Une fois la classe chargée, on ne reviendra plus dans la fonction __autoload pour la classe en question. Le "_once" ne sert donc pas à grand chose à part impacter les performances.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Yoshurn:md5:16343736e7f2fa276fb874c1311564a72009-10-13T16:36:51+02:002009-10-14T08:25:23+02:00Yosh<p>euh, je dirais que l'autoload émule en soit l'appel de la méthode class_exists, donc aucun intérêt d'appeler cette méthode ^^</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Niaatanurn:md5:13cd68c9364bb2ebb19e0e47ffc80bba2009-10-13T16:25:47+02:002009-10-14T08:25:23+02:00Niaatan<p>On dirait que mettre un test d'existence d'une classe DANS l'autoloader (qui est appelé en cas de non existance de la classe) est pas super pertinant, non ?</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Ldourn:md5:85b07569de160d741ade355251a44dd72009-10-13T16:24:52+02:002009-10-14T08:25:23+02:00Ldo<p>1 le test qui n'a pas d'intérêt, si autoload est apppelé c'est que la classe n'existe pas pas besoin de le tester à nouveau et 2 le paramètre autoload de class_exists à false ...</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - fgallniiurn:md5:bb8207efcd6ccb16a55f6b510077cb9a2009-10-13T16:24:11+02:002009-10-14T08:25:23+02:00fgallnii<p>1: Quel est l'intérêt de tester l'existence de la classe puisque si PHP appelle "__autoload" c'est qu'elle n'existe pas ??</p>
<p>2: Pourquoi demander à PHP de vérifier si la classe est déjà incluse avec "require_once", puisqu'encore une fois à ce moment là, la classe n'existe pas...</p>
<p>C'est les paradoxes auxquels tu penses ?? Sinon j'en vois pas d'autres.<br />
A+</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Syndraelurn:md5:09963bf60f64be6e98643073093a70032009-10-13T16:16:54+02:002009-10-14T08:25:23+02:00Syndrael<p>Euh.. le class_exists ?? perso j'en vois pas l'utilité. Et je reconnais que d'habitude je Catch l'ensemble.<br />
Mais dans la mesure où mon code est assez clair je vois pas l'utilité de l'autoload..<br />
S.</p>Saurez-vous trouver les paradoxes contenus dans ce code PHP ? - Hyvsurn:md5:575dd627591abf0f5396b04684b795c52009-10-13T15:52:03+02:002009-10-14T08:25:23+02:00Hyvs<p>A mon tour d'essayer, __autoload est appelé seulement si la classe n'est pas définie. La condition est donc inutile. Je serais plutôt d'avis de faire l'include et après seulement tester l'existence de ma classe et dans le cas échéant prévoir une routine de secours ou une levée d'exception.</p>
<p>Mea culpa si complètement à coté <img src="/themes/default/smilies/smile.png" alt=":)" class="smiley" /></p>
<p>De quel projet francophone s'agit-il ?</p>