J’en causais dans le poste hier :
Bon, je suis assez satisfait de mes développements récents dans le plugin sysInfo mais, parce qu’il y a toujours un mais, je n’avais pas tout à fait anticipé une chose en ajoutant la liste des fichiers du cache statique — fichiers gérés par le plugin du même nom — vu que celle-ci peut être potentiellement copieuse, surtout avec un vieux blog comme le mien !
Parce que finalement, obtenir la liste intégrale, même si celle-ci est limitée au blog courant[1], des fichiers du cache statique n’a strictement aucun intérêt en soi, à part bien sûr la satisfaction d’avoir codé ce qu’il fallait pour l’obtenir et permettre la visualisation de leurs contenus.
J’ai donc repris mon stylo et mon bloc de papier pour imaginer ce que pourrait être un utilitaire réellement pratique dans ce domaine. J’en suis arrivé à deux constats :
- Il n’y a aucun moyen de déterminer l’URL ayant produit un fichier présent dans le cache statique, le nom de celui-ci étant généré via un md5(), les trois premiers couplets de celui-ci servant à créer la hiérarchie des répertoires dans le dossier de cache statique du blog — d’ailleurs le dossier de cache statique du blog est lui-même créé de la même manière à partir de son URL de base[2].
- Il serait utile d’offrir un moyen simple de « calculer » le nom du fichier cache correspondant à une URL (que ce soit la page d’accueil, un billet, un flux XML, …) et d’offrir de quoi parcourir alors la hiérarchie du cache pour retrouver ce fichier et visualiser son contenu, voire le supprimer.
J’ai donc repris ma copie et ai développé une nouvelle version de l’outil dont je vais détailler l’usage ci-après.
Affichage initial
Voilà à quoi ressemble l’affichage initial dans le plugin sysInfo lorsque vous sélectionnez la liste Cache statique :
En détail, vous trouvez :
- Une zone permettant de « calculer » le nom d’un fichier cache correspondant à une URL. Par défaut c’est l’URL du blog qui est pré-saisie.
- Une ligne indiquant le chemin du dossier racine (pour le domaine) du cache statique, et la date de dernière mise à jour (du blog).
- Une table listant les répertoires de 1er niveau existants dans le dossier racine du cache statique (pour le domaine hébergeant le blog courant).
Calcul du nom de fichier statique à partir d’une URL
Après avoir renseigné l’URL recherchée, un clic sur le bouton de calcul (avec la flèche à droite), permet d’afficher le nom du fichier cache statique correspondant :
Dans l’exemple ci-dessus, j’ai laissé l’URL du blog, qui correspond donc à sa page d’accueil et j’ai obtenu un nom de fichier commençant par 84d04bac…. Les trois premier couples de caractères forment la hiérarchie des dossiers dans le cache statique. C’est donc ces répertoires qu’il va me falloir parcourir pour retrouver ce fichier.
Affichage du deuxième niveau
Je clique ensuite sur le dossier de premier niveau correspondant au premier couple du nom de fichier, soit 84 :
Et j’obtiens la liste des sous-dossiers, dont le dossier d0 qui m’intéresse.
Affichage du troisième niveau et de la liste des fichiers
Je clique ensuite sur le dossier de deuxième niveau, correspondant au deuxième couple du nom de fichier, soir d0 :
J’obtiens la liste des dossiers de 3e niveau, dont le dossier 4b qui m’intéresse et la liste des fichiers cache qui s’y trouvent. Je peux alors visualiser son contenu, avec coloration syntaxique si celle-ci est active dans vos préférences, et éventuellement le supprimer (cocher la case et utiliser le bouton idoine en bas du formulaire).
Conclusion
Voilà quelque chose d’un peu plus utilisable et moins stressant pour le serveur puisque le calcul du nom de fichier cache, le parcours de la hiérarchie et la récupération du contenu est faite en Ajax[3], c’est-à-dire uniquement au moment où la demande est faite en cliquant sur le bouton ou le lien associé.
Il y a surement d’autres choses qui pourraient être faites avec ce plugin, comme par exemple supprimer l’intégralité des fichiers caches d’un domaine, ce que ne permet pas la tâche de maintenance du plugin staticCache qui efface l’intégralité du cache, tout domaines confondus.
Et vous avez peut-être d’autres besoins/idées à me suggérer ?
Notes
[1] En réalité elle peut être plus longue puisque plusieurs blogs sur le même domaine se partagent le même dossier cache racine.
[2] Plus précisément, un dossier est créé pour chaque domaine. Si l’URL du blog est http://www.exemple.fr/mon-blog/ alors c’est la partie http://www.exemple.fr qui servira de base pour la création du dossier. Par conséquent, plusieurs blogs sur le même domaine se partageront le même dossier cache de base.
[3] Et je me suis passablement amusé à coder la partie Javascript, langage qui m’intéresse particulièrement en ce moment.
1 De Gilsoub -
J’ai rien compris, mais c’est super :-)
2 De Gilsoub -
Je veux dire que c’est super que DC continue à avancer…
3 De Franck -
Je l’avais bien compris comme ça Gilsoub, t’inquiète ;-)
4 De saymonz -
Du coup, est-ce qu’il y a vraiment un intérêt à garder ce masquage des noms de fichiers en caches en md5 ?
Sous d’autres horizons, les noms de fichiers de cache statiques sont bien souvent calqués sur l’URL sans aucune transformation, ce qui permet en plus de pousser le cache encore plus loin via des réécritures d’URL directement dans le serveur web, sans même avoir à démarrer un processus PHP.
C’est inutile pour les petits blogs mais ça peut sauver les miches d’un site à très gros trafic ou d’une plateforme (ou en cas «d’effet slashdot » sur un petit).
5 De Franck -
L’intérêt de passer à la moulinette du md5 est que du coup le résultat est de format fixe ; ça peut éviter des surprises côté URL (je suppose).
Maintenant ce plugin a été développé pour une (grosse) ferme de blogs, qui tourne encore aujourd’hui et ça fait déjà quelques années, chez un célèbre registrar français ; j’ai pas entendu qu’il y ait eu le moindre souci avec ça depuis son installation ;-)