![]() |
|
Observer le fonctionnement du serveur
Le cache
Le cache de dacode permet de stocker des fragments HTML dans le but d'éviter de faire des appels dynamiques PHP et MySQL/PostgreSQL. Ces appels sont coûteux et doivent être évités dans la mesure du possible.
Deux types de fragments sont mis en cache : les boîtes et les pages. Une page est un document HTML complet, alors qu'une boîte est un bout de HTML qui est inséré dans un document généré par daCode. Nous allons séparer ces deux aspects :
$ mkdir dacache $ mkdir dacache/boxes dacache/pages |
Le cache est géré par Apache. Il faut que celui-ci puisse écrire et lire dans le cache. Pour l'instant, on donne des droits suffisants. On affinera plus tard...
$ chmod o+rwx dacache/boxes/ dacache/pages/ |
Il nous faut rajouter dans le `config.site' nos emplacements :
$ grep cache daCode/config.site $this->cachedir = "/home/dacode/dacache/boxes/"; $this->htmldir = "/home/dacode/dacache/pages/"; $ cd daCode; scripts/dacodeconfig -a configure |
Maintenant, le cache est opérationnel. Si vous faites appel à votre site daCode, les répertoires vont se remplir de fichiers petit à petit. Il n'y a pas d'intervention particulière de maintenance à prévoir.
Les noms de fichiers ressemblent à ceci :
$ ls dacache/* dacache/boxes: backends_agenda--.,0.html dacode_dacode--,0.html.1.0. backends_kernel--.,0.html sidebox_topics--,0.html.1.0. dacache/pages: index,0,1,0.html |
L'en-tête (backend_agenda) décrit quel est le script qui est à l'origine de la création de ce fichier de cache. Les suffixes sous forme de chiffres, séparés par des points ou des virgules représentent un profil d'utilisateur.
-
Un utilisateur anonyme
-
Un utilisateur ayant choisi l'habillage Slashdot
-
Un utilisateur ayant choisi l'habillage par défaut et [un autre truc]. (TODO)
Deux remarques :
-
Plus les profils auront d'options, plus le cache devra créer de fichiers.
-
Vous pouvez peut être trouver commode de vous représenter les profils comme étant une partie de la base de données de daCode stockée dans les cookies sur les navigateurs et auxquelles daCode accède grace à la classe PHP `Session'. Cette représentation est en grande partie erronée, mais je la trouve utile pour comprendre le fonctionnement du serveur avec un niveau d'abstraction élevé.