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 :

Premier pas Symfony - Doctrine [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 93
    Points : 63
    Points
    63
    Par défaut Premier pas Symfony - Doctrine
    Bonjour,

    J'ai juste 2 petites questions bêtes. Je viens de cakephp et je test un peu symfony2. Je me demandais quelle est la meilleure façon de faire entre créer ses modèles pour générer la base de données ou au contraire créer la base de données et générer les modèles (ce que je fais avec cake) ?
    Sinon si on crée d'abord les modèles et qu'on y met une relation n à n, est ce que symfony crée la table de jointure entre les 2 tables ou faut-il crée un modèle pour la table de jointure et ajouter des relation 1 à n sur cette table ?

  2. #2
    Membre habitué Avatar de Soobook
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 149
    Points
    149
    Par défaut
    Salut,

    Tu fais totalement abstraction de la base de donnée et tu gères TOUT via des classes PHP (nommées entités et correspondant le plus souvent à tes tables).
    Sf2 (ou plutôt l'ORM) crée la base et les tables, les met à jour, gère les relations, insère des données d'exemple (fixtures), etc. La plupart des besoins sont gérés, c'est très puissant.
    La commande generate:doctrine:entity te permet de créer facilement une entité avec ses principaux champs (mais pas les relations que tu dois rajouter ensuite).

    Perso, ouvrir phpmyadmin est exceptionnel, et utiliser du SQL n'arrive que dans des cas particuliers genre requête complexe ou, plus souvent, vouloir éviter trop de lazy load.

    Un conseil, si tu débutes avec Sf2, utilise Doctrine comme ORM (par défaut) et les annotations comme système de configuration (c'est demandé quand tu crée un bundle).
    J'ai utilisé yml pendant pas mal de temps et passer aux annotations m'a changé la vie.

    Pour les relation ManyToMany, les tables de jointures sont automatiquement générées, tu peux en choisir le nom si tu veux via l'annotation @ORM\JoinTable(name="nom_table_jointure").
    Javascript est la pornstar des langages de programmation : souple, puissant, tu lui fais faire ce que tu veux, et ça peut finir bien crade.
    ---
    https://www.bgaze.fr

  3. #3
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Citation Envoyé par Soobook Voir le message

    et les annotations comme système de configuration (c'est demandé quand tu crée un bundle).
    J'ai utilisé yml pendant pas mal de temps et passer aux annotations m'a changé la vie.
    Je l'appui sur ses conseils... la BDD n'a plus d'importance dans symfony2, enfin, elle en a, mais tu ne la manipules que dans de rare situations.

    Et pour les annotations, même si je préfère de très loin les fichiers yml pour ma part, je conseille aux nouveaux d'aller sur les annotations parce que l'on trouve beaucoup plus d'aide et de doc avec elles.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 93
    Points : 63
    Points
    63
    Par défaut
    Ok, merci à tous les deux je vais donc suivre vos conseils et tout gérer avec les entités.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Les annotations c'est crado. C'est mélanger les routes, les actions du controlleur, les entités de base de données et la validation des formulaires.
    C'est un peu comme chier la où tu manges

    Par contre pour tes relations n-n je te conseil de passer par deux relations 1-n n-1. C'est plus propre , plus évolutif (si tu dois insérer n'importe quelle propriété a la relation n-n, ce qui arrive dans 90% des cas)

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

Discussions similaires

  1. Premier pas avec Doctrine 2
    Par shadypierre dans le forum Doctrine2
    Réponses: 6
    Dernier message: 17/10/2011, 18h21
  2. Premier pas sous C++
    Par Lachdanan dans le forum C++
    Réponses: 8
    Dernier message: 11/10/2005, 14h39
  3. premier pas dans la vie active
    Par godik dans le forum Emploi
    Réponses: 12
    Dernier message: 10/10/2005, 16h27
  4. [debutant] premier pas avec le SDK directX9
    Par arno2004 dans le forum DirectX
    Réponses: 6
    Dernier message: 27/05/2004, 21h03
  5. Réponses: 2
    Dernier message: 14/04/2004, 19h37

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