Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony 2 : Suppression automatique

Suppression automsatique de profils inutilisé

Sujet résolu
    4 juillet 2015 à 12:02:48

    Bonjour à tous,

    Je suis confronté à un soucis avec mon application, voici mon soucis. 

    Je souhaite que quand un utilisateur desactive son profil, que celui-ci soit supprimé de la BDD 6 mois aprés.
    Mais je veux que cette action soit automatique.

    Dans mon contrôleur , j'ai fait ceci :

    public function removeDisabledProfilAction(){
    
    // donne la date - 6 mois pour connaitre date buttoire
    $date=date('Y-m-d',strtotime('-6 month',strtotime(date('Y-m-d'))));
    
    //appel de entityManager        
    $em = $this->getDoctrine()->getManager();
    
    // je recupere les utilisateurs qui on une date plus eloigné que la date butoire     
    $user=$em->getRepository('ManblioUserBundle:user')->findResiduel($date);
    
    // si il y a des utilisateurs trouvé if($user){
    // je supprime toute les possession de livre qu'il a foreach($user as $u){ $possession=$em->getRepository('ManblioLivreBundle:possession')->findByUtilisateur($u);
    foreach($possession as $p){ $em->remove($p); $em->flush(); } // et j'attribu tous les livre qu'il a ajouter au super admin
    $livre=$em->getRepository('ManblioLivreBundle:Livre')->findByQuiCree($u); $superAdmin=$em->getRepository('ManblioUserBundle:user')->findOneById(1);
    foreach($livre as $l){ $l->setQuiCree($superAdmin); $em->flush(); } // et je supprime finalement le profil $em->remove($u); $em->flush(); } }

    Quand j'apelle l'action depuis le routeur sa fonctionne niquel.
    Mais comme je veux que sa fonction tout seul, j'ai appeler cette action dans mon construct

    public funciton __construct(){
        $this->removeDisabledProfilAction();
    }

    et la ... C'est le drame, ca ne fonctionne plus et Symfony m’engueule :


    est-ce que vous savez de quoisa peut venir?

    Y a t'il une autre solution ?

    Évitez de me parler des services et des listeneur car j'ai rien compris (a part si un âme charitable a envie de m’expliquai^^)

    Merci d'avance votre aide ;)

    • Partager sur Facebook
    • Partager sur Twitter
    Hmel 50100
      5 juillet 2015 à 15:55:51

      Bon, Apparemment personne pour m'aider ...

      Je me suis débrouiller tous seul. 

      j'ai fini par m’esquinter a faire un service listener.

      Bonne journée

      • Partager sur Facebook
      • Partager sur Twitter
      Hmel 50100
      Anonyme
        5 juillet 2015 à 16:43:07

        Si tu as la main sur ton serveur, je pense que le mieux resterais de faire une cron qui s’exécute 1 fois par jour (typiquement lorsque tu as le moins de traffic) puis de supprimer tous les profils désactivés depuis 6mois ou plus.
        • Partager sur Facebook
        • Partager sur Twitter
          5 juillet 2015 à 19:59:09

          Oui mais j'ai pour habitude de ne pas utilisé les fonction "serveur" car le jour ou tu doit mettre ton applis sur un serveur qui gère pas les tache CRON tu n'a pas le choix que de reprendre le code.

          Là au moins, je peu déployer l'applis sur n'importe quel serveur (je suis encore en développement) je sait que sa vas marcher.

          après dans mes future mise a jours, il y aura probablement une table dateMiseAJoursUser et quand j'aurais exécuter une fois la fonction, la date du jour se mettra dans la table et le script ne recommencera pas.

          mais sa ce sera dans le future ...

          salut et merci quand même d'avoir répondu ;) 

          • Partager sur Facebook
          • Partager sur Twitter
          Hmel 50100

          Symfony 2 : Suppression automatique

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown