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 :

Faire fonctionner plusieurs environnement de production [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Par défaut Faire fonctionner plusieurs environnement de production
    Bonjour,

    Dans une logique d'industrialisation de mon développement, je souhaite partager un meme code entre plusieurs clients.

    Je m'explique : J'ai développé une application que j'ai déposé sur un serveur. Pour chacun de mes clients je souhaite créer un environnement de production différents (duplication du fichier index.php en client1.php, client2.php, client3.php, ...).

    Chacun de ses environnements tape dans une bdd différente (propre, donc, à chaque client)

    Jusque là tout va bien. Les problèmes et question arrivent ensuite :

    Je souhaite que chaque client arrive sur mon serveur via une url différente (de leur choix par exemple), que cette url m'emmene sur client1.php pour le 1er client... etc. Et que, bien sur, je n'ai pas besoin de saisir le "/client1.php/". Comment faire? (si je place chacun de mes 3 fichiers dans un sous répertoire de web et que j'active pour chaque environnement le paramètre "no_script_name" je me passe de la saisie du nom du fichier mais mes css et js ne sont pas chargé...) (Pour ce qui est de l'url différente, j'imagine que c'est une simple histoire de virtual host...?)

    Deuxième problématique : Comment faire en sorte que les 3 clients utilisent bien le même code, excepté quand j'ai un client qui veut du spécifique sur tel ou tel module? Le plugun est-il la bonne solution ? Offre t-il beaucoup de souplesse ? Me contraint-il a créer une application par client (ce qui reviens a dupliquer mon code, ce que je ne souhaite pas) ? Dois-je "m'amuser" a faire de l'héritage sur toute mes classes ?

    D'avance merci, j'espère ne pas vous avoir noyer avec toutes mes questions.

  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
    Il est partiellement possible de gérer plusieurs fichiers index (index1.php, index2.php,... ) et de les lier avec des virtuals host.

    Par contre, tu ne pourras pas avoir plusieurs sites "par défaut" dans symfony, donc tu devras utiliser derrière des URL du genre : http://www.monClient.com/index1.php/...in/bidule.html Ceci est a paramètrer dans la config de apache, donc il faut la main sur la config du serveur, ce qui limite les endroits où c'est utilisable.

    De plus, ceci n'est envisageable que si tout tes sites sont une même application, sans aucune différences entre tes différents clients, exemple, un blog ou tu loues de l'hébergement pour un client pour son blog, mais tout les blog ont une structure applicative équivalente. Dans ce cas, les url aurait intérêt à ressembler à :monClient.blogEnVrac.com/articles

    Dans ton cas, si tu veux des développement particulier sur certains clients, il sera plus intéressant de développer une application pour chaque client. Il ne te reste qu'à créer un plugin (ou plusieurs) avec la logique commune et à les utiliser dans tes applications.

    Ce type de mise en œuvre est préconisé par sensio et plus souple à utiliser. Tu en as un exemple dans le tutoriel de symfony : JobeeJob.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Par défaut
    Bonjour,

    Merci pour ta réponse Michel. Comme tu me l'a préconisé j'ai mis en place un plugin qui contient mes modules et mes filtre, form et model.

    Le système de plugin est effectivement une bonne solution je pense; cependant, j'ai un problème : L'héritage est bien géré par défaut par symfony sur mes filtre, form et model, mais pas sur mes actions de modules, hors c'est essentiel pour moi si je dois faire du code spécifique ou ajouter de nouvelles actions pour un seul client.... Est-ce que j'ai raté quelque chose dans le tuto ou bien est ce normal? Comment palier à ce problème?

    Merci encore pour ta réponse, et merci de continué à m'épauler

    Cordialement

  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
    Regarde la manière dont est géré le plugin sfDoctrineGuard, il pourrait te donner des idées.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Par défaut
    Ok donc si je comprend bien le fonctionnement du plugin sfDoctrineGuard je créé un module dans mon application du même nom que ceux déclarés dans mon plugin; je créé le actions.class.php dans le répertoire actions, et j'adapte le code ci-dessous a mes besoins... ? me trompe-je ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php   require_once(sfConfig::get('sf_plugins_dir').'/sfDoctrineGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php');
     
    class sfGuardAuthActions extends BasesfGuardAuthActions
    {
        public function executeNewAction()
        {
            return $this->renderText('This is a new sfGuardAuth action.');
        }
    }

  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
    Oui, c'est pas ultra propre, mais ceci me semble être la seul bonne méthode.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 07/10/2009, 16h13
  2. Réponses: 5
    Dernier message: 02/09/2004, 19h53
  3. Faire fonctionner Flash sous Konqueror
    Par Ultra-FX dans le forum KDE
    Réponses: 2
    Dernier message: 20/06/2004, 18h40
  4. Réponses: 5
    Dernier message: 18/06/2004, 14h59
  5. comment faire fonctionner l'exe sur une autre machine
    Par brian79 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/05/2004, 14h00

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