Le cache du compilo utilise la fonction eval() de PHP
Voici un troll trouvé sur la doc officiel :
Le cache du compilo utilise la fonction eval() de PHP
Voici un troll trouvé sur la doc officiel :
D'ailleurs, je penses qu'eval() court circuite le travail que pourrait
faire turkmm, mais c'est une autre histoire.
Oui, c'est certain ; en même temps dans la version précédente de SPIP, on
court-circuitait volontairement APC (utilisé sur rezo.net), car il est aussi
absurde de cacher les milliers de fichiers cache, qui souvent n'ont que du
php très simple.
Dans le code actuel, le eval est justifié si on compresse le cache, mais
si on désactive la compression, pourquoi ne pas "include()" directement
le cache, comme on peut debugger sans compression, et quand ça marche
réactiver.
Ca marchait comme ça avant, oui. Emmanuel a fait évoluer le truc dans ce
sens, et après une période dubitative et comme ça marchait...
Quand le &debug=1 ne suffit plus, existe-t-il une technique de secours
pour attraper une erreur?
Non.
-- Fil
Voici un troll trouvé sur la doc officiel :
-------------
If eval() is the answer, you're almost certainly asking the
wrong question. -- Rasmus Lerdorf, BDFL of PHP
-------------
Ce n'est pas un troll. On retrouve le même genre de recommandation dans la
doc de Python (mais Python, il est vrai, offre beaucoup plus de facilités
pour rendre eval totalement inutile).
La fonction eval en tant que tel, je m'en fiche un peu, quand ça marche,
c'est nickel. Sauf que quand ça marche pas, c'est super lourd pour
débugger, vu que l'erreur est mangé.
Indeed.
D'ailleurs, je penses qu'eval() court circuite le travail que pourrait
faire turkmm, mais c'est une autre histoire.
Je le pense très fort aussi, et je l'avais dit à l'époque où cet eval()
est apparu, mais je crois que c'est tombé dans le vide. Pourtant, il est
un peu plus difficile de mettre en cache et d'optimiser un code qui évolue
potentiellement à chaque appel qu'un fichier standard muni de sa date de
dernière modification fournie par l'OS.
Quand le &debug=1 ne suffit plus, existe-t-il une technique de secours
pour attraper une erreur?
Un "echo" du code évalué ?
a+
Antoine.
Fil a écrit :
D'ailleurs, je penses qu'eval() court circuite le travail que pourrait faire turkmm, mais c'est une autre histoire.
Oui, c'est certain ; en même temps dans la version précédente de SPIP, on
court-circuitait volontairement APC (utilisé sur rezo.net), car il est aussi
absurde de cacher les milliers de fichiers cache, qui souvent n'ont que du
php très simple.
On peut désactiver APC partiellement? La place occupé est si importante que ça?
Dans le code actuel, le eval est justifié si on compresse le cache, mais si on désactive la compression, pourquoi ne pas "include()" directement le cache, comme on peut debugger sans compression, et quand ça marche réactiver.
Ca marchait comme ça avant, oui. Emmanuel a fait évoluer le truc dans ce
sens, et après une période dubitative et comme ça marchait...
ah, le point sensible de la programation. La notion de ça marche, et de c'est joli (le code, pas l'interface). Trés bon point de départ pour s'étriper.
Je regrette d'avoir raté la période dubitative.
M.