par
fggdm » 23 juin 2005, 16:03
Salut,
Prenons l'exmple d'une authentification (très simplifié maisl e principe est là) :
1 - Un client valide son login/pwd
2 - La requête est envoyée au controlleur
3 - Le contrôleur demande à un coordinateur de traiter la requête
4 - Le coordinateur est client de la couche d'accès aux données et demande getUser(login, pwd)
5 - La classe qui fournit ce service est une "interface" entre les coordinateurs, les caches, la base de données et autres sources, le client se moque de savoir d'où vient l'objet
6 - L'interface cherche d'abord l'objet dans le cache, s'il n'y est pas elle le récupère ailleurs puis le met dans le cache, enfin retourne l'objet.
7 - Le coordinateur et le controlleur finissent leur boulot.
Tu ne mets pas directement l'objet "user" dans le cache, tu dois d'abord le rendre "cachable", tu créés une classe CacheableObject qui a un champ objet (la référence vers le "user" par exemple. Ca permet de gérer d'autres propriétés d'un objet "cachable" comme le moment auquel il est devenu cachable et par exemple combien de temps il doit rester en chache sans que l'on vienne le chercher, c'est à dire qu'à chaque fois que l' "interface" vient chercher un objet dans le cache il faut rallonger sa durée de vie (par exemple le temps d'une session).
C'est résumé comme je dis mais l'essentiel est là.
En effet comment détruire l'objet périmé en PHP ? La première solution est de vérifier tous le cache à chaque fois qu'on vient chercher un objet mais en cas de gros cache ça peut mettre en péril l'application. Comme en pHP il n'y a pas de gestion de processus on peut très bien passer par une tâche exécutée sur le serveur.
Salut,
Prenons l'exmple d'une authentification (très simplifié maisl e principe est là) :
1 - Un client valide son login/pwd
2 - La requête est envoyée au controlleur
3 - Le contrôleur demande à un coordinateur de traiter la requête
4 - Le coordinateur est client de la couche d'accès aux données et demande getUser(login, pwd)
5 - La classe qui fournit ce service est une "interface" entre les coordinateurs, les caches, la base de données et autres sources, le client se moque de savoir d'où vient l'objet
6 - L'interface cherche d'abord l'objet dans le cache, s'il n'y est pas elle le récupère ailleurs puis le met dans le cache, enfin retourne l'objet.
7 - Le coordinateur et le controlleur finissent leur boulot.
Tu ne mets pas directement l'objet "user" dans le cache, tu dois d'abord le rendre "cachable", tu créés une classe CacheableObject qui a un champ objet (la référence vers le "user" par exemple. Ca permet de gérer d'autres propriétés d'un objet "cachable" comme le moment auquel il est devenu cachable et par exemple combien de temps il doit rester en chache sans que l'on vienne le chercher, c'est à dire qu'à chaque fois que l' "interface" vient chercher un objet dans le cache il faut rallonger sa durée de vie (par exemple le temps d'une session).
C'est résumé comme je dis mais l'essentiel est là.
En effet comment détruire l'objet périmé en PHP ? La première solution est de vérifier tous le cache à chaque fois qu'on vient chercher un objet mais en cas de gros cache ça peut mettre en péril l'application. Comme en pHP il n'y a pas de gestion de processus on peut très bien passer par une tâche exécutée sur le serveur.