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 :

variables globales dans symfony [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut variables globales dans symfony
    Hello.

    Est-il possible avec Symfony de charger le contenu d'une table dans une variable globale, de façon à économiser quelques requêtes au chargement de chacune des pages d'un site ?

    J'ai testé le code suivant dans actions.class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        if(!sfConfig::get('app_types'))
        {  
          $this->types  = Doctrine_Core::getTable('Type');
          sfConfig::set('app_types', $this->types);    
        }
    Ce qui me renseigne bien la variable app_type, mais si on passe à un autre module que le module 'type', la variable n'est pas renseignée.

    L'idéal serait donc de renseigner ma variable globale dans projectConfiguration.class. J'ai essayé avec un tableau statique, et ça fonctionne.
    Par contre, impossible d'accéder à ma base avec le code ci-dessus.

    J'obtiens le message d'erreur suivant :
    Fatal error: Class 'Doctrine_Core' not found in C:\dev\sfproject\project\config\ProjectConfiguration.class.php on line 35
    Quelqu'un aurait-il une solution ?

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Salut,

    C'est ou que t'economises des requetes la ?
    Doctrine_Core::getTable('Type') n'execute pas de requete on est bien d'accord ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    euh... oui, c'est de ma faute, j'ai pas copié le bon code ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        if(!sfConfig::get('app_types'))
        {  
          $this->types  = Doctrine_Core::getTable('Type')->getTypes();
          sfConfig::set('app_types', $this->types);    
        }

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Mais je comprends pas pourquoi ca te fait economiser une requete. Ca ne fait que la deplacer la, ou alors j'ai pas bien compris.

  5. #5
    Invité
    Invité(e)
    Par défaut
    L'idée c'est de renseigner les <option> d'un <select>.
    Si j'ai un <select> commun à plusieurs pages, je vais être obligé d'aller chercher mes valeurs dans ma base à chaque changement de page.

    Alors que si je renseigne mes valeurs dans une variable globale une fois pour toutes, à chaque changement de page, pas besoin d'aller fouiller dans ma base, je renseigne directement mon <select> à partir de ma variable globale.

    Et si j'ai 10 select sur chaque page, j'économise 10 requêtes à chaque fois...
    Dernière modification par Invité ; 14/04/2011 à 14h18.

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    sfConfig est plus proche d'une constante que d'un stockage intermédiaire.

    Pour le faire simplement, tu peux stocker dans le paramterHolder de l'objet MyUser qui est constant entre les sessions.

    Si tes select sont les mêmes pour tous les utilisateurs, il faudrait voir du côté du cache sfViewCacheManager il est peut-être possible de torturer la chose pour y cacher un array de data. (jamais fais)

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

Discussions similaires

  1. [2.x] variable globale dans symfony ?
    Par domino974 dans le forum Symfony
    Réponses: 2
    Dernier message: 18/07/2011, 04h43
  2. [1.x] Variable globale dans Symfony
    Par SRTPC dans le forum Symfony
    Réponses: 3
    Dernier message: 02/06/2008, 19h51
  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