Menu

Application Symfony2 Gestion des Films, Part 1 : Création des entités et les tables

Introduction

Au cours de ce tutorial, nous allons nous lancer dans la création d'une application web en utilisant le framework symfony2. Nous allons créer gestionnaire des films pas à pas:
  • Chaque film comportes un ou plusieurs acteurs
  • Chaque film est classé dans une Catégorie( Comédie, Science-fiction, etc )

MISE EN PLACE DE VOTRE BASE DE DONNÉES AVEC DOCTRINE

Nous allons commencer à créer les "Entity". En fait, symfony2 utilise doctrine pour communiquer avec la base de données MySQL. Doctrine est un ORM qui va nous permettre de traiter toutes nos tables comme de simples objets. Ainsi pour chacune des tables de notre application, nous devons créer sa représentation objet.

Les entités vont être créées dans le dossier Entity, donc, commençons par créer un dossier "Entity" dans notre bundle: "Gestion_Films/src/HTM/FilmoBundle/Entity"
L’application nécessitant 4 tables "Film""Acteur", "Categorie" et "Film_Acteur" table d’association entre film et acteur
Nous allons créer les 3 class Film, Acteur et categorie pour la table film_acteur elle va être générer automatiquement.

Configuration de la base de données

Avant de commencer, vous aurez besoin de configurer vos informations de connexion de base de données. Par convention, cette information est généralement configurée dans un fichier
app/config/parameters.yml
Changer le nom de la base à : gestion_film
Maintenant que Doctrine connaît votre base de données, vous pouvez l'avoir créer

php app/console doctrine:database:create

Création des classes (Entité)

Vous pouvez avoir Doctrine créé des classes d'entités simples pour vous. Cela vous poser des questions interactives pour vous aider à construire une entité

php app/console doctrine:generate:entity

Gérer les relations :

class Film
{      
    //code du classe film
    /**
     * @ORM\ManyToOne(targetEntity="Categorie")
     * @ORM\JoinColumn(name="categorie_id", referencedColumnName="id")
     */
    Private $categorie;
    /**
     * @ORM\ManyToMany(targetEntity="Acteur")
     * @ORM\JoinTable(name="Film_Acteur")
     */
    Private $acteurs;

Génération des Getters et Setters:

Pour les deux attributs que nous avons déjà ajouté dans le class film il faut générer les Getters et Setters

php app/console doctrine:generate:entities FilmoBundle:Film
# ou bien
php app/console doctrine:generate:entities FilmoBundle 
# génère toutes les entités du FilmoBundle


Créer les tables de la base:

Doctrine peut créer automatiquement toutes les tables de base de données nécessaires pour chaque entité connue dans votre application. Pour ce faire, exécutez:

php app/console doctrine:schema:update --force

Voici le vidéo de l'exemple 







À la prochaine part 2 : Insertion et affichage des

données dans la base
Merci pour votre Attention

Aucun commentaire:

Enregistrer un commentaire