Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2011, 11h43   #1
Invité de passage
 
Homme
Étudiant
Inscription : mai 2009
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 22
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : mai 2009
Messages : 5
Points : 1
Points : 1
Envoyer un message via MSN à Scorp06
Par défaut Modélisation Site Petites Annonces

Bonjour à tous !

Je suis débutant avec symfony et je rencontre un problème qu'il faut que je résolve avant de continuer à développer, c'est pourquoi j'ai besoin de votre aide. Ce n'est pas forcément un problème avec symfony mais un problème de modélisation en général.

En fait je souhaite développer un site de petites annonces qui serait rangées dans des catégories (une petite annonce appartient à une seule catégorie).

Je dois pouvoir définir pour chaque catégorie des critères qui doivent après être renseigné (ou non) par les petites annonces. Par exemple, la catégorie "Immobilier" qui aurait les critères "Prix", "Nombre de chambres", etc. et une petite annonce qui contiendrait le prix mais pas forcément le nombre de chambres. Mais il ne faut pas que la petite annonce puisse remplir les critères d'une autre catégorie.

Je suis parti sur trois tables Annonce, Catégorie et Critères où :
- une annonce appartient à une seule catégorie (OneToMany),
- un critère appartient à une ou plusieurs catégories (ManyToMany).

J'ai une autre relation ManyToMany qui lie une annonce à un critère, avec une valeur (pour indiquer le prix dans l'exemple ci-dessus).
Je peux vous copier mon schéma YAML si besoin est.

Je ne sais pas du tout si c'est la bonne façon de m'y prendre et comment avec symfony je vais pouvoir générer automatiquement les formulaires associés. Je voudrais en effet pouvoir remplir les critères (correspondant à la catégorie) d'une petite annonce lorsque je crée ou modifie celle-ci.

Peut-être qu'il faut que je fasse quelque chose de plus statique et que je définisse mes critères directement dans le schéma de la base de données.
En tout cas je suis preneur si vous avez des idées d'améliorations...

Merci pour votre aide !
Scorp06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 10h01   #2
Membre chevronné
 
Avatar de Herode
 
Développeur Web
Inscription : mars 2005
Messages : 769
Détails du profil
Informations personnelles :
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2005
Messages : 769
Points : 788
Points : 788
Le modèle me semble correct. Si la traduction dans ton schéma YAML est bien faite, symfony te permettra de générer automatiquement les classes du modèle, des filtres et formulaires et les pages d'administration CRUD.

Mais les formulaires fournis sont basiques. Pour gérer les tables associées, il faudra passer par des formulaires enchâssés (embedded forms). Voir par exemple les chapitres sur les formulaires dans :
  1. le tutoriel jobeet
  2. la 'gentle introduction to symfony'
  3. la doc complémentaire
  4. symfony forms in action
Herode est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/06/2011, 22h23   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Tu peux te servir de ta table critère (celle ou tu définis les types de critères) pour aussi préciser le type de donnée (ce qui permettra d'utiliser cette information pour générer le form nécessaire à ce critère (choix du Widget et du Validateur).

Attention cependant si la table vient à grandir, les requêtes sur plusieurs critères risquent fort de devenir très, très lourdes.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/06/2011, 10h58   #4
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 76
Points : 161
Points : 161
Citation:
Envoyé par Michel Rotta Voir le message
Attention cependant si la table vient à grandir, les requêtes sur plusieurs critères risquent fort de devenir très, très lourdes.
Tout à fait, c'est aussi pour cela que sur les sites comportant un gros volume de données et à fort traffic, il est fréquent de scinder le site en deux (voire plus) :
- un back-office permettant la gestion des annonces avec une base normalisée
- un front-office (pour l'internaute) s'appuyant sur une base dénormalisée favorisant un accès rapide à l'information.

le transfert du back vers le front peut alors se faire soit de façon périodique (chaque nuit par exemple), soit lors de l'enregistrement d'une annonce sur le back-office.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h09.


 
 
 
 
Partenaires

Hébergement Web