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 :

Variable Globale dans Un controlleur


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    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
    Par défaut Variable Globale dans Un controlleur
    Bonjour,
    Ce que j'ai dans mon controlleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
        public function uploadfileAction() {
            $validerfichier = $this->get('Fichier_Valid');
            $validerfichier->uploadfile();
            return $this->redirect($this->generateUrl('envoifichier'));
        }
     
        public function downloadAction($downloadfile) {
            $validerfichier = $this->get('Fichier_Valid');  //la classe Fichier dans FichierBundle
            $validerfichier->download($downloadfile);  // download manuel.pdf :)
        }
     
        public function lirefichierAction() {
     
            $validerfichier = $this->get('Fichier_Valid');  //la classe Fichier dans FichierBundle
            $fichiers_arrays = $validerfichier->toutlesfichiers(); // recuperer array des fichiers dans uploads :)  
            return $this->render('EspritAppGestionBundle:Default:lirefichier.html.twig', array(
                        'fichiers' => $fichiers_arrays
            ));
        }
    je veux que $validerfichier sois affectée au début (en haut du controlleur seulement ) et bien sur utilisé partout .

    merci, LM

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Par défaut
    Salut, ce n'est pas une variable globale que tu as besoin ici, mais d'un service.

    Crée un service qui va garder la variable et si possible gérer tous les traitements qui lui sont associés.
    Un service pouvant être appelé depuis un controller mais aussi depuis un autre service, même depuis ton template twig si tu fais ce qu'il faut pour, ça remplit pleinement ton besoin actuel. De manière générale, quand tu te rend compte que ton controller fait autre chose que de l'aiguillage c'est qu'il te manque des services pour faire office de boîtes noires.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Qu'est-ce qui t'empêche de créer une propriété $validerfichier et de l'initialiser dans le constructeur??

  4. #4
    Membre émérite
    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
    Par défaut
    @ Tsilefy j'ai rajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //
    use EspritApp\FichierBundle\Services\Fichier;
    use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
     
    class DefaultController extends Controller {
     
        private $validerfichier;
        public function __construct(Fichier $validerfichier) {
            $this->validerfichier = $validerfichier;
        }
    //
    mais ça tourne plus

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Il faut transformer ton contrôleur en service (le principal effet est qu'il n'hérite plus de Controller), et tu injectes ensuite dans le service les paramètres que tu veux depuis ton conteneur à injection de dépendance (tu peux aussi injecter tout le conteneur, mais ce n'est pas une bonne pratique).

    Mais regarde également ce que lilalex a conseillé :-)

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Par défaut
    Tu peux aussi injecter tout le conteneur, mais ce n'est pas une bonne pratique
    Alors moi aussi j'avais lu ça et j'y ait cru dur comme fer ... mais ça c'était avant ^^.
    Les mecs qui ont conseillé ça n'ont jamais développé de commandes Symfony de un, de deux tu passes ta vie à modifier ton fichiers services.yml si tu fais passer les services un à un.
    A moins de vouloir distribuer ton bundle, il n'y a aucun intérêt à se refuser le "service container" dans les services que l'on crée.

Discussions similaires

  1. Variable Globale dans un module de formulaire.
    Par wisiwi dans le forum Access
    Réponses: 5
    Dernier message: 30/03/2006, 14h03
  2. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55
  3. Variables globales dans une classe
    Par vanitom dans le forum C++
    Réponses: 16
    Dernier message: 14/01/2005, 14h40
  4. Variables globales dans fichiers entête
    Par benj_f04 dans le forum C++
    Réponses: 5
    Dernier message: 13/08/2004, 09h06
  5. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22

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