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 :

Comment intégrer plusieurs bundles avec une interface web commune [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut Comment intégrer plusieurs bundles avec une interface web commune
    bonjour,
    j'ai une appli avec plusieur composants regroupé sous forme de bundle, CRM,Mail etc.
    CRM a son Bundle, Mail a son Bundle, quelle est la technqiue pour intégrer ces différents bundles sous une même interface d'administration? J'aurai une barre de manue horizontale sur le haut de l'écran avec les liens vers ces différents composantes.
    Faut il faire un bundle core qui va gérer l'intégration? ou coder à la mano?merci pour vos avis

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Hello,

    Rien ne t'oblige à faire "un bundle = un espace de route" : tu peux aussi te contenter d'utiliser les services qu'ils proposent dans tes propres contrôleurs et ta gestion des routes à toi.
    C'est toi qui décide ou tu utilises ces bundles, donc oui il n'y a rien qui t'empêche d'avoir 200 bundles avec une seule interface si ça te chante.

    En général le bundle "Core" est rarement une bonne idée car c'est un fourre-tout dans lequel on met tout ce dont on ne sait pas ou mettre le code. Du coup tu te crée bêtement des dépendance de malade, ce qui n'est pas idéal.

    En gardant en tête que "un bundle = une fonctionnalité" tu pourras aisément découper ton projet de manière simple. Mais un bundle a le droit d'utiliser les services d'un autre bundles : c'est même rarement impossible autrement : il faut bien que tes services communiquent entre eux

    ++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut
    hello merci pour ta réponse.
    Je n'avais pas encore lu le chapitre sur les services, en effet j'avais tendance à penser bundle = service.
    En fait bundle serait plus égal à une logique métier.
    J'ai bon si j'ai un bundle CRM et un bundle Ecommerce?

    Quant au core, j'abandonne cette idée , en effet je trouve qu'il est un peu contraire à la notion de bundle qui est justement la modularité de Symfony.

    Mon idée est la suivante :
    Disons que le bundle Ecommerce va exploiter des capacités du CRM.

    Ensuite si j'ai un projet de CRM seul dans le futur, je pourrai exploiter ce bundle tout seul.

    Mais pour l'heure, je dois faire communiquer le CRM et le catalogue Ecommerce (si un lead se transforme en client donc il aura accès au catalogue) et Ecommerce exploitera les données d'adresse du CRM.

    Comment fait on pour échanger des données entre bundle?

  4. #4
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Si tu veux faire quelque chose d'aussi modulaire je te conseille de bien jouer avec la POO, les interfaces etc. C'est comme ça qu'on arrive à créer des bundles indépendants.
    Fais bien la distinction entre les bundles fonctionnels, et ceux qui hébergerons toute la logique métier.

    Si tu mélanges les deux c'est déjà foutu. Le bundle qui gère le métier lui il n'est que l'utilisateur des bundles fonctionnels e-commerce et CRM.

    Ce bundle va implémenter les classes (aussi bien les entités que les manager souvent déclarés entant qu'interfaces et/ou classes abstraites) de tes bundles et y ajouter toute la partie métier. Il sera dépendant des deux autres mais par contre les deux autres pourront être utilisés n'importe ou.

    Qu'est-ce que tu entends par échange de données ? L'ensemble de ton projet ne partage qu'une base de données ? Donc oui, tu peux "échanger des données" dans la mesure ou ils peuvent manipuler les mêmes objets.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut
    Fais bien la distinction entre les bundles fonctionnels, et ceux qui hébergerons toute la logique métier
    Ah mais ça vaut son pesant d'or ça merci!

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2009
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    vous auriez un exemple parlant de distinction entre bundles fonctionnels et bundles métiers

  7. #7
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Ouaip un exemple : disons que tu fais un site e-commerce.

    La partie fonctionnelle c'est : pagination, tri des articles, Panier, Authentification, Règlement par carte et/ou Paypal etc. Des problématiques récurrentes.
    La partie métier c'est les particularités du fonctionnement de ton site à toi : qui font partie du besoin de ton entreprise/association/whatever.

    La partie métier va avoir besoin des briques fonctionnelles pour être utilisée.
    Mais à l'inverse les briques fonctionnelles sont totalement indépendantes et génériques et ne dépendent pas d'une quelconque logique métier. Elles sont faites pour s'adapter à différents cas d'utilisation et être implémentée par les classes qui vont les utiliser.

    La partie métier définira que la page d'accueil c'est celle là, que quand tu t'es authentifié tu arrives sur cette page là, que quand tu fais une commande tu reçois un mail de confirmation etc. Le fonctionnel ce sont les "bundles" (pour reprendre les termes de Symfony) qui seront utilisés : un bundle de login, un bundle pour faire un panier, un bundle de pagination, un bundle de règlement, un bundle d'envoi de mail etc.

    Le bundle (fonctionnel) il ne fait qu'envoyer des mails : il faudra lui dire quoi ou et à qui parce qu'il n'en a aucune idée, par contre le métier détermine le contenu du mail, le destinataire, et à quel moment il doit être envoyé (après une commande par exemple).

    ++

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

Discussions similaires

  1. [Débutant] comment afficher plusieurs images dans une interface
    Par zakary dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 02/05/2009, 10h47
  2. [Utilisation] Commit avec une interface web
    Par maximenet dans le forum Subversion
    Réponses: 10
    Dernier message: 01/07/2008, 10h34
  3. Réponses: 1
    Dernier message: 16/03/2007, 17h30
  4. Comment accéder à un javascript avec une adresse web?
    Par Pragmateek dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2006, 13h52
  5. Réponses: 2
    Dernier message: 19/12/2005, 13h15

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