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 bien découper un site d'annonces en bundles ?


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Comment bien découper un site d'annonces en bundles ?
    Bonjour,

    J'aimerai développer des sites d'annonces avec Symfony2.

    Je voudrais faire du mutisite. Pour faire rapide :
    Chaque site à son propre design et ses propres données en base.
    Selon l'url on affiche les bons templates et on récupère les bonnes données.

    J'ai beaucoup de questions que je vais poster en plusieurs discussions.
    Je commence par la première question :

    Comment découper un projet de multisite d'annonce en bundle ?

    Mon découpage :
    • CommonBundle (pour gérer les données communes à chaque site : par exemple la catégorie (véhicule, maison, immobilier, média, etc.), les informations sur chaque site (slug, db_name, url, name...), etc.)
    • AnnonceBundle
    • MediaBundle ( SonataMediaBundle )
    • UtilisateurBundle ( FOSUserBundle)
    • MenuBundle ( KnpMenuBundle )


    Que pensez-vous de ce découpage ?
    Avez-vous des suggestions/améliorations ?

    Merci beaucoup pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut


    Ton découpage me semble intelligent mais un truc me chiffonne : ton "CommonBundle" va, comme tu le dis très bien, gérer le multi-site appelle-le SiteBundle !

    Quand on parle de quelque chose qui touche à un métier, ne pas le nommer "common" ; laisser les mots-tiroirs ("common", "tools", "shared", "util", "divers", etc.) aux outils non techniques, et encore même là si on peut s'en passer c'est tant mieux.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton retour, à la base je voulais créer 1 AdminBundle (BackEnd) et un SiteBundle (FrontEnd). C'est en échangeant sur internet que j'en suis venu à ce découpage.

    En fait le CommonBundle, c'est un bundle qui va parser l'url et récupérer les informations pour chaque site, qui regroupera les options, etc., c'est plus un configBundle. Dès la première page c'est ce bundle va initialiser les paramètres du site (quel dossier de template et quelle base de données sélectionner). Je devrais peut-être le renommer ConfigBundle ? Ou même InitializationBundle ? Qu'en penses-tu ?

    Après est-ce que je dois créer un SiteBundle pour faire la liaison entre les annonces, les utilisateurs, menus, etc. ?

    Merci

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je pense garder ce découpage.
    D'autres membres ont-ils des suggestions ?

    Merci

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Bonjour Banjoo,

    je suis en train de créer un site d'annonce, alors je voulais savoir comment ta fais l'architecture de ta base de données ? puisque il y on a beaucoup des catégories avec des champs différents selon catégorie?

    Merci d'avance

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Salut Echef,

    Je suis en pleine conception de ma base de données. Je prends mon temps pour bien faire.

    Tu créer une table catégorie et une annonce.
    Une annonce n'appartient qu'a une catégorie, une catégorie contient plusieurs annonces. Donc c'est une relation One to Many.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Salut ,

    oui c'est ca mais chaque catégorie possédé ses propre champs ? non ?

    par exemple : les champs de la catégorie immobilier (comme surface,nombre du pièces...) ne sont pas les même de la catégorie véhicule (comme couleur, marque, kilométrage)
    donc comment tu va faire la conception de ceci ?

    Merci

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Salut

    Mes catégories ne sont pas aussi poussées.

    Tu créer une table catégorie.
    Tu créer une table option ( une option peut appartenir à 0 ou plusieurs catégories)

    Tu créer une table option_annonce avec id, id_annonce, id_option, valeur.

  9. #9
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    Salut !

    Pour le découpage en bundle, inutile de trop découper non plus...
    Commence effectivement par une conception "papier", où tu décris la liste de tes pages, la navigation entre elles et les objets qu'elles utilisent. Par exemple, un objet Utilisateur, Annonce, Categorie.

    Commence alors le dév (controller vides) pour créer toutes tes pages, la navigation et le code html propre (html5 tant qu'à faire) et du joli CSS. Ca t'aidera à enrichir chaque page avec la liste des champs que tu veux voir apparaître :
    • utilisateur = login, mail, mot de passe + confirmation, adresse, tel...)
    • annonce = titre, description, date creation, rattachée à une ou plusieurs categories...
    • categorie : libellé, description, avec ou sans sous catégories...


    Tu attaques alors le dév dans les controller, pour rendre dynamiques tes pages. Mais pas besoin de vraiment réfléchir à la structure de la base de données, puisqu'avec Symfony, tu as des scripts qui vont t'aider à générer tes objets (tu indiques la liste des attributs et leur format), et à générer la base de données.
    Tout se fait dans la conception des objets et leur paramétrage, ensuite les scripts font le reste si tu as bien pensé ta conception. De toutes façons, lors du dév de tes pages, tu vas forcément constater des trucs qui manquent ou à modifier. Pas de problème, relance les scripts ça fait les mises à jour.

    Bon courage !
    (moi aussi, je dév sur un site de petites annonces sortie de la V2 le 1er avril si tout va bien ! et c'est pas un poisson...)

    Vincent

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Merci pour votre reponse , mais j'ai pas bien compris le script duquels vous parlé ? quel type de script ?

    et si ça ne vous dérange pas on peux échanger d'opinion si on fait le même travail (site d'annonce)
    Merci

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci Vinsse2001 pour ton retour et tes conseils.
    Je suis allé voir ton site, et il me dit « [...] vous devez activer le javascript... » alors que mon JavaScript est bien activé. Bon courage avec la nouvelle version.

    Echef, dans Symfony2 tu as des « scripts » qui te facilitent le développement. Par exemple, ils te permettent de mettre à jour ta BDD, créer des entités...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Banjoo Voir le message
    Echef, dans Symfony2 tu as des « scripts » qui te facilitent le développement. Par exemple, ils te permettent de mettre à jour ta BDD, créer des entités...
    En terminologie Sf2, ce sont des commandes.

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Salut,

    merci pour vos réponses et vos avis aussi

    donc pour moi je veux m'adopter pour cette solution:
    Table Categorie(id,nom)
    Table Champ(id,nom,type)
    Table Categorie_champ(id_categorie,id_champ)
    Table Annonce(id,titre,description,created_at)//cette table contient tout les champs communs pour les différents catégories
    Table Annonce_champ(id_annonce,id_champ,valeur_champ)

    maintenant, le problème est que comment je peux générer les champs dynamiquement ? puisque dans symfony on traitent les choses comme des objets???
    donc il nous faut le getter et les setter de chaque attribut ??et les champs sont stockés dans la table champ?

    comment peut on faire ca ?

    Merci

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Alors est ce que que quelqu’un peut m'aider encore ?

    Merci d'avance.

Discussions similaires

  1. Comment bien chiffrer un site ?
    Par cybermaxs dans le forum ASP.NET
    Réponses: 7
    Dernier message: 19/04/2010, 17h33
  2. Comment bien référencer mon site ?
    Par LaJess dans le forum Référencement
    Réponses: 2
    Dernier message: 05/03/2010, 20h46
  3. Comment bien referencer son site web ?
    Par kamnouz dans le forum Hébergement
    Réponses: 3
    Dernier message: 21/07/2008, 23h37
  4. Comment bien référencer un site Multilangues ?
    Par Sayrus dans le forum Référencement
    Réponses: 8
    Dernier message: 27/03/2008, 14h18
  5. Réponses: 1
    Dernier message: 20/09/2007, 11h52

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