Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-10-2008 06:13:33

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Comment gérer les logs et historiques ?

Bonjour,

Après plusieurs mois d'abscence sur le ZF, je retourne enfin sur du développement !!

Je dois reprendre l'application que j'avais commencé à développer et la faire évoluer (un outil de gestion des locations immobilière + portail pour le locataire). Etant donné que des locataires sont amenés à se connecter je souhaiterai ajouter une gestion de log+historique (qui s'est connecté, à quelle heure, combien de temps, et quelles sont les opérations effectués). J'aimerai avoir votre avis car cette gestion est indépendante à l'appli elle-même et ses fonctionnalités. Du coup, peut-être qu'un design pattern conviendrai bien ? Etant donné que sur toutes les opérations (CRUD inclus) je vais devoir surveiller, j'hésite un peu dans mon choix. Enfin si vous avez des suggestions...

Merci beaucoup.

PS: j'ai lu un topic récent concernant le CRUD, et malgré mes recherches, je n'ai pas trouvé d'information sur le design pattern PRG... A quoi correspond-t'il ?

Dernière modification par whitespirit (15-10-2008 12:46:19)

Hors ligne

 

#2 15-10-2008 07:48:51

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Comment gérer les logs et historiques ?

PRG signifie Post Redirect Get

c'est un Design patterm spécifique au appli web
il dit en gros qu'il ne faut pas donner directement de réponse à un traitement soumis par un Post.

sur le Post tu récupère les datas sans traitement et tu retourne un Redirect immédiatement
ce rediect effectué par le client t'amène sur un page en Get qui elle fait le nécessaire.

comme le Redirect est immédiat après le Post le client à une réponse et se retrouve en lecture Get du résultat de traitement. il ne peu donc pas ressoumettre les datas en faisant F5

Il suffit de mettre un indicateur sur les datas pour que le refresh du Get ne refasse pas le traitement.

Je gère mes formulaires sur ce principe en faisant RGPRRG
le premier R est le résultat de l'invocation du service par le client. par exemple "Edit Client" cette action va chercher le client en base et retourne un Redirect sur un "Affiche Formulaire Client"
(Je peux avoir ainsi plusieurs action demandé par l'utilisateur qui amène à afficher le formulaire client. Il suffit que l'action mette la fiche client en mémoire et de faire le Rediect)

l'affichage du formulaire se fait sur un Get et utilise le client fourni par l'action précédente. un F5 ne fait que ré-afficher et ne fait rien dans le moteur de l'application.

l'utilisateur Post le formulaire on entre là dans le PRG à proprement parler. sauf que l'action sur laquelle est redirigé l'utilisateur n'est pas le traitement mais la vérification. ainsi si les datas sont erronées le Redirect mène à l'affichage du formulaire avec des messages
sinon il mène sur le traitement effectif qui renvois sur une page Get de la réponse.

tous les traitements étant fait dans les Actions Redirect il est quasi impossible pour l'utilisateur de les relancer en doublon.

si tu veux l'ai posté un article sur le sujet ici: http://sekaijin.ovh.org/?p=16
A+JYT

Dernière modification par sekaijin (15-10-2008 07:51:30)

Hors ligne

 

#3 15-10-2008 13:11:11

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: Comment gérer les logs et historiques ?

Merci Sekaijin d'avoir répondu à mon petit PS. Merci de tes explications mais des choses me trouble encore. J'aurai aimé lire ton article avant de te poser une autre question mais le lien cité dans ton post précédent me renvoie vers un formulaire de connexion (je pense que t'as fait con copier coller depuis l'interface backend et non frontend :-) )

Sinon je suis toujours interessé pour savoir comment faites vous pour gérer vos logs. En fait pour être plus clair, à mon stade de réflexion (tout au début), j'hésite entre plusieurs choses :

- Tous mes controlleurs actuels hérite d'un TemplateControlleur. Sans changer grand chose à mon code je peux mettre dans l'init() du templateController une fonction/classe qui va prendre en charge de l'écriture du log ou historique. Je m'inspirerai dans ce cas du design pattern strategy (et à ce sujet developpez.com à un tuto nouveau disponible http://eric-pommereau.developpez.com/tr … -strategy/). Cependant, j'enregistrerai ici que les informations concernant mon CRUD (et toutes les autres informations, ex: tentative de connexion, pages vues, date/heure de connexion, est-ce qu'un utilisateur tente d'accéder à une ressource non permise par une voie non catholique, etc.)

- La deuxième solution consisterai à récupérer toutes les actions depuis le bootstrap ou un plugin, et dans ce cas, je n'ai pas encore d'idée pour avoir un plugin claire et évolutif en fonctions des opérations qui vont être effectués ou à traiter.

- La troisième solution consiterai à faire un mixte des deux solutions : dans le TemplateController je note toutes les opérations relatives au CRUD et j'écris un plugin pour le reste.

Voilà, je ne sais pas si c'est choquant ou pas, mais si vous avez un avis sur le sujet, je suis preneur...

Merci d'avance.

Hors ligne

 

#4 15-10-2008 13:31:15

acharrex
Membre
Lieu: Suisse
Date d'inscription: 27-04-2008
Messages: 135

Re: Comment gérer les logs et historiques ?

Ca doit être ça : http://sekaijin.ovh.org/?p=31 smile

Hors ligne

 

#5 15-10-2008 18:25:15

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Comment gérer les logs et historiques ?

sorry je n'avais pas vu que j'étais en édition
tu peux lire aussi celui-ci
http://sekaijin.ovh.org/?p=16

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages