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 :

component ou autre? [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Par défaut component ou autre?
    Bonjour à tous,
    J'ai un petit souci je ne vois pas comment faire bien.
    Intro : j'ai une appli symfony sur laquelle pointe plein de site:
    site1.test.com, site2.test.com, site3.test.com...
    Chaque site à une configuration (une couleur, un titre...)
    Et ces informations je veux les afficher dans mon layout principale.
    Or je trouve ça étrange que la seul solution soit le "component", car je devrais faire pour chaque parametre de conf un template en affichant une valeur
    Du type echo $color pour l'un
    ou echo $title pour l'autre
    De plus ça multiplie le nombre de requête...

    Si quelqu'un peut m’éclaircir je suis preneur, si je n'ai pas été clair je suis complètement disponible!
    Merci

  2. #2
    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
    Tu as un tuto intéressant pour récupérer le nom du site dans l'url ici.

    Ensuit je ne suis pas très sur de ce que tu veux faire, mais il me semble que tu souhaite mettre des commandes de style dans ton layout. Je pense que c'est une mauvaise idée. Regarde plutôt à faire une page de style par défaut et de passer une page de style spécifique au site par dessus. Ceci devrait être beaucoup plus souple en terme de mise en page.

    Pour le titre, tu n'as pas trop le choix.

    Le problème de symfony 1, ici, est qu'il n'est pas possible de superposer des template, tu as le template au niveau de l'action et le layout. En Symfony 2 et avec twig tu pourrais avoir un nombre théoriquement infini de layout superposés les uns aux autres.

    Dans ton projet, soit tu veux un layout commun pour tous les sites, soit non. Dans le deuxième cas, tu as la possibilité de choisir le layout lors de l'exécution. Et vu que cela devra être fait pour tous les sites du site (!). Tu as intérêt à créer un filtre (pas un filtre de données, mais un filtre au sens contrôleur dans symfony) et de lui déléguer cette tâche.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Par défaut
    Pour récupérer le sous domaine j'ai utilisé un peu le même principe que ton tuto, mais je n'ai pas utilisé le routing de symfony car je n'y pas vu l’intérêt pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $name = explode( '.', $_SERVER["SERVER_NAME"] );
    $q = Doctrine_Query::create()->from('Website w')->where('w.alias = ?', $name['0'] );
    return $q->fetchOne();
    Enfin quoi qu'il en soit tu as bien compris mon problème!
    Oui je veux un layout commun pour tous les sites. Mais en gros dans cette table website, il y a 5 éléments de configuration (le nom d'une image, un titre, une couleur...). Des éléments que je souhaite intégrer dans le layout, car commun pour tous les modules.

    Concerant les filtres, c'est parfait! mais pas dans mon cas!! Le nombre de sous domaines étant illimités.

    Donc dois je faire 5 components qui retourne qui retourne une dizaine de caractères chacun?

    Un grand merci pour toutes vos réponses

  4. #4
    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
    Il est particulièrement recommandé en symfony de ne jamais utiliser les variables "$_XXX". Ceci empêche notamment le système de test de fonctionner. Je pense que tu as tout intérêt à modifier ton code pour cette partie.

    Le filtre n'est pas limité en nombre de choix possible. Mais il n'a d'intérêt que pour l'utilisation des css. Et encore, sous réserve de tests.

    Pour ta solution qui consiste à intégrer les css dans le layout, je pense que le mieux reste un componment appelé depuis le layout. Dans la partie contrôleur du componment tu récupères les données dans l'objet user où tu les auras stocké à la première requête. Ce qui va éviter les lectures répétitives de la base. Seul inquiétude, est-il possible qu'un même utilisateur (client) consulte simultanément plusieurs sites ? Si oui, il va falloir gérer la chose d'une manière beaucoup plus élaborée. Surtout si un administrateur d'un des sites est aussi visiteur pour les autres... Il ne faudrait pas qu'il puisse administrer les sites de ces camarades...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Par défaut
    Ok parfait je n'avais pas pensé à ça:
    "Dans la partie contrôleur du componment tu récupères les données dans l'objet user où tu les auras stocké à la première requête."

    Je vais donc faire des component pour chaque avec cette technique.
    Pour les variables $_..., je vais également suivre tes conseils.

    Merci pour tout

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Par défaut
    Re!

    J'ai marqué résolu mais j'ai parler un peu vite...
    Tu m'as proposé de "récupérer les données dans l'objet user où tu les auras stocké à la première requête"

    Ce qui est une excellente idée pour éviter de multiplier les requêtes. Toutefois j'aurais besoin des éléments de conf dans tous les modules et non pas uniquement dans ce component.
    Ou pourrais je donc faire cet enregistrement dans sfUser?

    Merci

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

Discussions similaires

  1. Redimensionnement d'un component par rapport à un autre
    Par Ceubex dans le forum Général Java
    Réponses: 1
    Dernier message: 17/06/2011, 21h17
  2. Réponses: 3
    Dernier message: 06/06/2009, 21h22
  3. [1.x] component appel autre component
    Par nathieb dans le forum Symfony
    Réponses: 2
    Dernier message: 30/03/2009, 02h34
  4. Creation de Component contenant d'autre component
    Par cirtes dans le forum C++Builder
    Réponses: 7
    Dernier message: 14/01/2009, 11h42
  5. "component" sur autre base de données
    Par k4eve dans le forum Hibernate
    Réponses: 4
    Dernier message: 12/04/2005, 09h48

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