IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Une méthode de controleur pour une tache planifiée


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Une méthode de controleur pour une tache planifiée
    Bonjour,

    Je suis nouveau sur Symfony. J'ai créé une application avec mes contrôleur et tout j'ai une méthode qui récupère mes données et fait un traitement puis envoye un mail.

    maintenant j'aimerais que cette méthode soit appeler tout les jours avec les planificateur de taches.
    J'aimerais donc lancer ma méthode avec le php.exe ou par commande mais je ne sais pas comment faire.

    Merci de votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Il faut utiliser une commande: http://symfony.com/doc/current/cookb...e_command.html
    ça te permet par exemple de faire une commande php app/console dataTreatment:email qui est appelable par CRON.

    Ton code métier envoyant l'email et traitant les données doit être factorisé et mis dans un service(plus enfait, mais si tu débutes un services c'est déjà un bon départ). Ce service sera appelé par ton contrôleur ou par ta commande avec les mêmes paramètres, maximisant ainsi la maintenabilité de ton traitement

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    Command est un Design pattern très important,parmi les fameux bundles qui l'utilisent , il y a FOSUserBundle .
    La planification de l’exécution dépends de l’environnement ( je kiffe le Unix)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    j'ai donc fait mon service avec mon controlleur

    cependant dans ma commande j'ai cette ligne qui ne marche pas.

    $this->getDoctrine()->getManager()->getRepository('....');

    mais cela marche sur mon navigateur.

    J'ai mis sela dans mon service
    arguments: [ "@?doctrine.orm.entity_manager" ]

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    si tu as déclaré le service avec comme argument @doctrine.orm.entity_manager , cela veut dire que ton constructeur va recevoir l'entity manager.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function __construct ($em)
    {
      $this->em = $em;
    }
    et donc tu dois remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getDoctrine()->getManager()->getRepository('....');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->em->getRepository('....');
    Tu comprends?

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/10/2012, 16h01
  2. Réponses: 0
    Dernier message: 24/05/2011, 11h05
  3. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  4. Utiliser une méthode non-static dans une méthode static
    Par mcfly37 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 18/08/2010, 11h41
  5. Filtrer une list "Assigned To" pour les taches
    Par lcaufrie dans le forum SharePoint
    Réponses: 2
    Dernier message: 20/04/2009, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo