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 :

Routing & sous-domaines


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 1
    Par défaut Routing & sous-domaines
    Bonjour !

    Je suis, depuis septembre, sur un projet web en Sf2 pour mon entreprise.
    Ce projet se decoupe en deux grosse parties :
    - Un site de vente. => vente.entreprise.com
    - Un site plus "corporate" (actus sur l'entreprise, infos sur les produits, tests, nouveautés). => entreprise.com

    Les deux doivent être liés car le site corporate peut, par exemple, être amené à proposer des recommandations de ventes suivant la page visitée. Les interactions ne s’arrêtent pas là et c'est pour ça que j'aimerai les interfacer un maximum, donc au mieux les localiser dans la même application.

    Pour des raisons de recette et de communication, il m'a été imposé de réaliser en premier lieu le site de vente sur le sous-domaine vente.entreprise.com. Ce site est aujourd'hui terminé.


    Aujourd'hui je dois donc réaliser le site corporate et j'aimerai ne pas avoir à créer une autre application Sf2. Néanmoins je veux :
    • Du routing indépendant selon le sous-domaine : Si entreprise.com/xxx existe, vente.entreprise.com/xxx peut ne pas exister et retourner une 404.
    • Pouvoir accéder aux controllers/resources des Bundles du site vente.entreprise.com, car il y certains composants/widgets qui vont devoir être repris : j'aimerai pouvoir utiliser {% render %} et {% include %} en toute transparence.
    • Pouvoir utiliser les entities du bundle du site vente.entreprise.com en plus de celles de entreprise.com, et ce sans les dupliquer.
    • Dans le meilleur des mondes, pouvoir importer des routes dans le ficher app/routing.yml avec le subdomain en requirement (à la manière du préfixe).


    Ça, c'est bien sur le scénario idéal, dans la réalité je vais certainement devoir faire des concessions.

    Dans Symfony 1.4, il était possible de tenir compte du sous-domaine lors de la définition des routes, et c'est aussi possible avec Zend Framework. Malheureusement, pour une raison que j'ignore, ceci n'est pas (encore?) supporté nativement par Sf2.

    J'ai fait pas mal de recherches et je suis tombé sur plusieurs cas d'utilisations et tentatives de solutions :


    Dans la pratique, je pensais enfin avoir trouvé une solution propre avec ceci : Symfony2 - routing with subdomains.

    => Créer deux front controllers, et charger un AppKernel différent selon le front qui est appelé, afin de pouvoir charger des configurations et routes différentes.

    J'ai donc crée un autre AppKernel que j'ai appelé, pour le bien de cette discussion, CorpoKernel, qui fait exactement la même chose que l'AppKernel par défaut sauf qu'il charge les bundles des deux sites et va chercher une configuration différente.

    Mon probleme avec cette solution : je m'embrouille les pinceaux avec le cache. En effet, des que je recharge l'AppKernel par defaut, Symfony met toute la config en cache et même en bootant sur l'autre front controller, la config chargée sera celle que l'AppKernel par défaut appelle, puisqu'elle est en cache.
    En d'autres mots, des que je boot une fois sur mon front controller vente, peut importe ce que je fais, booter sur l'un ou sur l'autre me chargera toujours la config du front controller vente, mise en cache, et donc les routes qui vont avec.

    Voila... je ne sais même pas si cette solution est la meilleure; en réalité le must serait d'override les classes d'importation de routes de Symfony pour prendre en compte l'host, mais ça, je pense que c'est au dessus de mes compétences actuelles.


    Si quelqu'un a des conseils sur la meilleure façon d’implémenter tout ça, que ce soit avec une solution que j'ai évoquée ou une autre, je suis plus que preneur.


    Merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut
    Salut,
    j'ai été confronté au même problème et voila ce que j'ai fait:

    D'abord cette solution marche seulement pour linux ou mac (je suppose que ton serveur de prod est sous linux par contre pour le dev?)

    J'ai fait l'arborescence suivante:

    RepertoireProjet
    --SiteCorporate
    ----app
    ----web
    ----symlink vers ../RepertoireShared/bin
    ----symlink vers ../RepertoireShared/src
    ----symlink vers ../RepertoireShared/vendor
    --SiteVente
    ----app
    ----web
    ----symlink vers ../RepertoireShared/bin
    ----symlink vers ../RepertoireShared/src
    ----symlink vers ../RepertoireShared/vendor

    --RepertoireShared
    ----bin
    ----src
    ----vendor


    Ainsi dans chaque sous application les répertoires web et app sont propres à l'application ce qui permet de séparer les caches, les configs et les parties du routing qui doivent être différentes

    Ensuite tout ce qui est en commun je le met dans le RepertoireShared et j'utilise des symlinks
    Pour les symlinks j'utilise du relatif ex "../RepertoireShared/vendor" et non de l'absolu "/var/www/MonProjet/RepertoireShared/vendor" ce qui me permet de mettre à jour mon serveur de prod sans problèmes.
    J'utilise aussi des symlinks pour des fichiers communs comme parameter.ini puisque j'utilise le même serveur mail, la même base de donnée, etc...

    En espérant que ça puisse t'aider
    John

  3. #3
    Membre confirmé Avatar de Soobook
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut
    Je sais que je réveille un vieux sujet, mais vu que c'est le premier résultat sur Google, ceci aidera certainement des gens :

    http://symfony.com/doc/master/compon...e_pattern.html

Discussions similaires

  1. [Hibernate] Problemes de connexion d'un sous domaine
    Par sylvain_neus dans le forum Hibernate
    Réponses: 15
    Dernier message: 09/05/2006, 10h49
  2. Réponses: 1
    Dernier message: 26/08/2005, 13h39
  3. [URL] Sous domaines dynamiques.
    Par Nairolf7 dans le forum Hébergement
    Réponses: 2
    Dernier message: 17/05/2005, 10h08
  4. Windows + Apache + Sous-domaines
    Par Phenol dans le forum Apache
    Réponses: 8
    Dernier message: 03/05/2004, 15h48
  5. Bind - sous-domaine
    Par _Gabriel_ dans le forum Réseau
    Réponses: 4
    Dernier message: 07/03/2004, 11h54

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