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 :

Rediriger la sortie vers un fichier [1.x]


Sujet :

Symfony PHP

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Points : 61
    Points
    61
    Par défaut Rediriger la sortie vers un fichier
    Bonjour,

    Pour m'expliquer, un exemple : j'ai un template permettant de générer un fichier (pas forcément html) ayant une structure donnée. Je souhaite, plutôt que de renvoyer ce fichier au navigateur, l'écrire dans un dossier de mon choix dans mon arborescence. Je souhaiterais ainsi pouvoir générer plusieurs fichiers de ce type dans un dossier.

    Comment pourrais-je faire ?
    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    J'ai pas compris, c'est ton template qui génére ton fichier ou ton controler ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Points : 61
    Points
    61
    Par défaut
    Bah admettons : j'ai un template generefichierSuccess.php, j'aimerais l'utiliser dans une action executeIndex pour générer des fichiers dans un dossier de mon arborescence. En expliquant je me rend compte que c'est assez tordu c'est vrai
    En résumé je voudrais avoir le contrôle sur le système de templates de Symfony pour l'utiliser comme on utiliserait Smarty par exemple. Et mes fichiers générés par le système je souhaite les stocker dans mon arborescence !

  4. #4
    Membre éclairé
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Points : 654
    Points
    654
    Par défaut
    met ton template dans un fichier _mon_template.php, ensuite, dans ton contrôleur, tu récupères le rendu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $res_template = $this->renderPartial('mon_template', array(
      'param1' => $param1,
      'param2' => $param2,
    ));
    puis tu sauvegardes le contenu de $res_template ou tu veux (c'est de l'html)

    çà répond à ta question ?
    "Computers are like Old Testament gods ; Lots of rules and no mercy"
    [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Essaye de jeter un oeil a renderPartial() and renderComponent().
    Ca devrait répondre a tes exigences.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 66
    Points : 82
    Points
    82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->setTemplate('generateFichier');
    Tu redéfinis un nouveau template pour ton action.

  7. #7
    Membre éclairé
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Points : 654
    Points
    654
    Par défaut
    redéfinir le template de l'action courante ne redirige pas la sortie HTML vers un fichier. donc j'insiste :p, renderPartial te permettra de récupérer le code HTML généré dans une variable. ensuite, tu fais ce que tu veux avec tes cheveux.
    "Computers are like Old Testament gods ; Lots of rules and no mercy"
    [ Les ordinateurs sont comme les dieux de l’Ancien testament ; Beaucoup de règles et aucune pitié. ] Joseph Campbell

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Points : 61
    Points
    61
    Par défaut
    Effectivement renderPartial semble correspondre à mon besoin !! Merci à tous d'avoir répondu !

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

Discussions similaires

  1. Redirection de la sortie vers un fichier
    Par WerKa dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/04/2008, 13h47
  2. Rediriger une sortie vers un fichier texte
    Par nuitn0ire dans le forum Débuter
    Réponses: 3
    Dernier message: 29/02/2008, 21h50
  3. Réponses: 11
    Dernier message: 20/09/2007, 16h58
  4. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

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