Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Pour faire simple, dans une application, lorsque qu'un visiteur veut s'inscrire à un espace membre, il passe par 3 étapes. L'utilisateur ~
1 - saisie un login et son email.
2 - reçoit un mail et doit cliquer sur un lien
3 - complète des informations personnelles et renseigne un mot de passe
lors de la 1re étape, je souhaite insérer l'utilisateur dans la DB et envoyer le mail. Cependant pour éviter que le mail soit envoyer mais que l'enregistrement ne soit pas fait ou inversement (si le serveur ne peut pas envoyer de mail), comment procéder vous pour être certain que les 2 soit fait, sinon rien.
Avec des manipulations avec la DB il me semble que cela s'appelle des transactions (avec rollback...) mais dans ce cas je ne sais pas comment faire.
Merci pour votre retour d'expérience.
Julien
Hors ligne
Pour le petit bout de doc : http://framework.zend.com/manual/en/zen … ansactions
Si tu te situe dans tn controller tu peux remplacer $db par $tonModel->getAdapter()
ce qui donnerais
$tonModel->getAdapter()->beginTransaction();
try {
//récupération de tes données
// etc...
$tonModel->insert($tesDonnees);
// envois de ton email
// si erreur email throw new Exception
$tonModel->getAdapter()->commit();
}
catch (Exception $e) {
$tonModel->getAdapter()->rollback();
}
Voilà en gros, j'ai utilisé ça cette après midi justement et ça roule
Hors ligne