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 :

Passage à SF 4.4 : fonction Process ne trouve pas le programme à exécuter [4.x]


Sujet :

Symfony PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut Passage à SF 4.4 : fonction Process ne trouve pas le programme à exécuter
    Bonjour à tous,

    Sous SF 4.2, j'ai dans un controleur du code qui lance un mysqldump vers un fichier, et ça marche nickel.
    En passant sous SF 4.4, ce code ne marche plus. Selon les docs de Symfony, la ligne Process() prend maintenant un tableau en paramètre. J'ai donc fait cette modif.
    Pour info, mon mysqldump (avec les vraies valeurs) marche quand je suis dans un terminal, dans mon dossier dump-sql.

    Voici mon code, avec en commentaire la ligne que j'ai modifié pour SF 4.4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $directory = $this->getParameter('kernel.project_dir');
    $directory .= '/dump-sql/';
    $command = 'mysqldump --host=monhost --user=monuser --password=monmdp mondatabase >monfichier.txt';
     
    $process= new Process($command); // SF 4.2
    //$process= new Process([$command]); // SF 4.4
    $process->setWorkingDirectory($directory);
    $process->run();
     
    if (!$process->isSuccessful()) {
    	throw new ProcessFailedException($process);
    }
    Et là, sous SF 4.4, j'ai toujours le message d'erreur suivant, dans un écran rouge, sur la ligne du throw de l'exception :
    Exit code: 127 (Command not found)
    De ce que je comprends, SF 4.4 ne trouve pas le chemin pour exécuter mysqldump, alors que ça marchait sous SF 4.2.

    J'ai essayé plein de trucs, sans succès :
    - Dans ma ligne 'command', ajouter en dur le chemin de mysqldump
    - Vu que Process prend un tableau en paramètre, découper ma ligne 'command' en plusieurs paquets
    - Puis plein de bidouilles qui ne m'ont mené à rien...

    Je suis à court d'idée. Vous avez des pistes svp ?

    Merci d'avance à vous.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Bon, j'ai avancé sur mon problème.
    Pour SF 4.4, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $process= new Process(['mysqldump', '--host=monhost', '--user=monuser', '--password=monmdp', 'mondatabase', '>monfichier.txt']);
    ça trouve l'exécutable mysqldump
    Mais ça se plante sur le paramètre pour écrire dans un fichier :
    mysqldump: Couldn't find table: '>monfichier.txt'

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Finalement, j'ai contourné ce dernier problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $process= new Process(['mysqldump', '--host=monhost', '--user=monuser', '--password=monmdp', 'mondatabase']);
    $process->run();
    if (!$process->isSuccessful()) {
    	throw new ProcessFailedException($process);
    }
    $resultat = $process->getOutput();
    Et $resultat contient le texte de mon dump, que je traite comme je veux ensuite.
    Donc sujet résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Windows ne trouve pas [nom programm] !!!!
    Par radoine32 dans le forum Sécurité
    Réponses: 2
    Dernier message: 16/12/2005, 13h38
  2. Passage de 'pipe' à une fonction ?
    Par laurent_ifips dans le forum POSIX
    Réponses: 2
    Dernier message: 25/11/2005, 07h06
  3. Réponses: 13
    Dernier message: 13/10/2005, 16h03
  4. passage de resultat de fonction entre deux .h
    Par zmatz dans le forum C++
    Réponses: 5
    Dernier message: 01/10/2005, 22h50
  5. [JAVASCRIPT] passage d'argument à une fonction
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/06/2005, 18h17

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