Des fois, souvent, avoir du cache c’est bien, que ce soit pour le système et la gestion des fichiers et dossiers, pour la mémoire, pour les étapes intermédiaires (OP-code, …), pour… Pour des tas de trucs en fait et c’est tant mieux, mais y’a des fois où ça fait suer !
Pour la mise à jour de Dotclear, je parle des versions majeures, il est fréquent qu’il y ait une bonne liste de fichiers et dossiers qui disparaissent d’une version à la suivante, parce qu’on a modifié ou ré-écrit (en mieux) la façon dont c’était fait ; et dans certains cas particuliers et spécialement lorsqu’on veut conserver une rétro-compatibilité avec le code tiers, ça fout le dawa parce que bien que ce soit prévu dans la procédure de mise à jour, les suppressions requises ne sont pas toujours effectuées en temps-réel.
Or dans ce cas transitoire on peut avoir du code neuf et du code ancien et avoir les deux peut foutre le bordayle !
Bref, assurer une mise à jour en trois clics peut nous donner de sacrées migraines à vouloir faire tout ça propre :-p
Vais aller fouiller le code de la concurrence pour voir comment ils s’en sortent…
1 De Biou -
Si tu passes par une redirection http une fois les fichiers mis à jour, ça marche pas ? Avec un petit opcache_reset() en cadeau après la redirection ?
2 De Nicolas -
Pour ma part, même si ça n’est pas parfait, je gère différents caches. Un cache “normal” pour la prod, un cache pour l’installation et un dernier cache pour les mises à jour. J’ai 3 répertoires de caches distincts.
Quand je met à jour je peux tranquillement supprimer le cache de prod. A la fin de la mise à jour quand je suis revenu en prod, je supprime le cache de mise à jour.
Je ne dis pas que c’est miraculeux, que c’est magique mais ça résout une partie des problèmes que tu évoques.
3 De Franck -
Biou on fait déjà un
opcache_reset()
si c’est possible, et une redirection HTTP vers l’authentification :-)Nicolas là il s’agit du cache géré par PHP, pas un des nôtres.