L'object Relational Mapping

Publié par Aline Bunelle Mer 12 déc 2007 14:58:00 GMT

Rappelons que Symfony utilise le système MVC et que par conséquent le modèle (l’accès en base de données) et bien distinct du reste (Controleurs et Vues).

L’ORM permet de créer une correspondance entre les tables de la base de données et les objets qui seront générés.

Pour chaque table correspondra une classe NomTable, permettant d’instancier les données de la table, et une classe NomTablePeer qui permettra d’intéragir avec la base de données.

Il est très important de bien comprendre et de différencier ces deux types de classes Objet et Peer qui seront générées pour chaque table. Nous les détaillerons dans le prochain article.

L’ORM suit une règle syntaxique pour le nom des classes et des méthodes :
  • La première lettre est bien sûr une majuscule;
  • Les ’_’ sont supprimés et la lettre qui suit est mise en majuscule;

Les classes sont générées dans lib/model (sachant que le dossier om contient les classes à ne pas modifier, les noms de ces classes sont précédés du mot clé Base).Elles héritent des classes Base.C’est ici que vous effectuerez vos traitements SQL.

Remarque : Si l’on régénére le modèle via la commande propel-build-model seules les classes Base seront écrasées !

Pour que l’explication soit plus clair nous allons nous baser sur un exemple, reprenons la structure précédente :

propel: 
  nom_table:
    id:
    created_at:
    titre:varchar(255)
    texte: longvarchar

  nom_table_2:
    id:
    created_at:
    updated_at:
    nom_table_id:
    texte: varchar(255)
    description: longvarchar
    chiffre: int

Publié sous  | Mots clés  | aucun commentaires

Comments

(leave url/email »)

   Aide sur le balisage des commentaires Prévisualiser le commentaire