je ne vois pas comment cela pouvait marcher :
cela produisait pour tout contexte
array('lang'=>'fr',
'articlexx'=>'')
et dans le calcul du cache, on ne prend en compte, dans le nom du fichier, que les valeurs du contexte, et pas les clés
De toute facon la methode de calcul du nom n'assurait pas l'unicite en fonction du contexte, je l'ai donc reinjecte dans le calcul du md5
Cédric
Le 8 sept. 08 à 12:31, Committo,Ergo:sum a écrit :
Le 8 sept. 08 à 12:26, cedric.morin@yterium.com a écrit :
j'insiste,
je ne sais pas comment ça marche chez vous, mais avec un spip de base
toutes les urls /spip.php?articlexx, /spip.php?rubriqueyy etc ...
avec les memes urls je n'ai pas le pb, je viens de réessayer.
Le 8 sept. 08 à 13:03, cedric.morin@yterium.com a écrit :
je ne vois pas comment cela pouvait marcher :
cela produisait pour tout contexte
array('lang'=>'fr',
'articlexx'=>'')
et dans le calcul du cache, on ne prend en compte, dans le nom du fichier, que les valeurs du contexte, et pas les clés
oui mais comme on prend en compte le nom de la page (et dans le cas des urls page il contient le numéro) le nom des clés n'a pas d'importance: pour une page donnée, les clés sont toujours les mêmes, et d'ailleurs dans la version précédente elles étaient mises (dans le corps du foreach) puis enlevées ensuite (par un preg_replace) ce qui faisait du calcul vraiment inutile.
De toute facon la methode de calcul du nom n'assurait pas l'unicite en fonction du contexte, je l'ai donc reinjecte dans le calcul du md5
Ca ca me va. Je pense que le pb était dans le test "strlen > 24" et les troncatures qui s'ensuivent: si le Path de la page était à lui seul > 24, les derniers caractères de articleXXX sautaient probablement.
le nom des clés n'a pas d'importance: pour une page donnée, les clés sont toujours les mêmes, et d'ailleurs dans la version précédente elles étaient mises (dans le corps du foreach) puis enlevées ensuite (par un preg_replace) ce qui faisait du calcul vraiment inutile.
De toute facon la methode de calcul du nom n'assurait pas l'unicite en fonction du contexte, je l'ai donc reinjecte dans le calcul du md5
Ca ca me va. Je pense que le pb était dans le test "strlen > 24" et les troncatures qui s'ensuivent: si le Path de la page était à lui seul > 24, les derniers caractères de articleXXX sautaient probablement.
oui dans le cas ou on mettait aussi le nom des cles, elles etaient de toute façon tronqueés
Cédric
Ah oui zut, c'est aux URL html que je pensais, je n'ai plus pensé à celles-là. Mea maxima culpa.
In fine, les pbs de doublons de cache sont évacués, le code est expurgé de calcul inutile et le nom d'un cache semble bien univoque.
Mais ça me fait tout de même bizarre qu'on doive tenir compte de la globale "$fond" qui, à ce moment du calcul, n'a peut-être pas sa valeur définitive puisque les URLs symboliques vont la changer par la suite. Evidemment le rôle du cache est AUSSI de ne pas calculer cette valeur mais je trouve ça assez contre-intuitif, je voulais vraiment trouver qqch de plus transparent. Tant pis.