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 :

Surcouche metier Symfony


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 74
    Par défaut Surcouche metier Symfony
    Bonjour,

    J'aurais besoin de votre avis sur l'organisation d'un projet sf2, pour savoir ou placer la surcouche métier.
    Sur symfony 1, on pouvait facilement écrire notre code dans les models qui héritait des fichiers générés de doctrine mais je ne trouve pas équivalant dans le 2.

    En gros si j'ai 4 tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    user
    -------
    id
    mail
     
    order
    -------
    id
    user_id
     
    product_order
    -------
    id
    order_id
    product_id
    price
    quantity
     
    product
    -------
    id
    name
    price
    stock
    Je génère via Doctrine mes entities et j'aimerais rajouter 3 fonctions :

    order->getTotalOrder() => Retourne le total de la commande
    product->getUserOrder() => Retourne tous les user qui ont achetés ce produit
    product->isDispo() => Retourne un bool si le produit est dispo ou non.

    Comment doit être l'architecture de mon projet pour placer les fonctions au bon endroit ?

    Je suppose "product->getUserOrder()" devrait être dans un repository.
    "product->isDispo()" doit il être directement dans l'entities ?

    Merci de votre aide

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    si il y a pas ou très peu de logique(généralement des petites conversions) on peux ajouter dans une entité des choses du genre isValid .... prixEnEuro() .... (même si c'est vraiment mieux de ne pas en mettre du tout)
    et bien sur , pour des requetes en base c'est obligatoirement dans le repository de l'entité.
    et si tu as des traitements logiques assez conséquents (plus de 10 lignes) il faut en faire des services. très simple à faire en Symfony2


    ainsi chaque chose à sa place, le modèle n'est que modèle. les repository -> les requètes et les services -> les traitements logiques

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 74
    Par défaut
    Je te remercie,

    Si je veux utiliser des Bundles existant (par exemple un bundle de CRUD), il n'utilisera pas ma couche métier ?
    Par exemple, à chaque changement d’émail je veux faire un appel vers un WS pour mettre à jour ma base mailing. Il y a une solution pour déclarer le service ou autre ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2013
    Messages : 71
    Par défaut
    La déclaration de services est très bien expliquée sur cette page :
    http://symfony.com/doc/current/book/...container.html

    Et pour surveiller le changement d'email, un listener devrait faire l'affaire :
    http://symfony.com/doc/current/cookb..._listener.html

Discussions similaires

  1. classe applicative et classe metier ?
    Par sali dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 08/07/2009, 23h52
  2. surcouche d'un langage
    Par tool69 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 11/11/2005, 09h47
  3. Le metier de programmeur n'est t'il pas bouché?
    Par phoenix440 dans le forum Etudes
    Réponses: 43
    Dernier message: 09/05/2005, 19h29
  4. Réponses: 102
    Dernier message: 17/03/2005, 19h32
  5. surcouche dll de directX
    Par gargle dans le forum MFC
    Réponses: 7
    Dernier message: 01/07/2003, 20h23

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