Application Symfony2 : Part 2 Insertion et Affichage des Categories
Introduction
Au cours de la 2éme partie de ce tutoriel, nous allons voir comment insérer et afficher des catégories.
Insertion Des données
Plutôt que d'effectuer une requête INSERT INTO, nous allons utiliser la puissance de Symfony2 et de Doctrine pour ajouter des catégories de film.
d'abord nous allons préparer la structure générale d'une page :
Routing :
Routing :
Controller :
Ce code montre comment travailler avec la doctrine à l'intérieur d'un contrôleur en utilisant la méthode getDoctrine (). Cette méthode est une raccourci pour obtenir le service de la doctrine.
ligne 13 : Cette ligne récupère l'objet de gestionnaire d'entités de la doctrine, qui est responsable de la gestion du processus de la persistance et de la récupération des objets vers et depuis la base de données.
lignes 15, 20, 25 : Dans ses lignes, vous instancier et travailler avec l'objet $categorie comme un autre, objet PHP normal.
lignes 18, 23, 28 : persist () Méthode dit Doctrine de «gérer» l'objet $categorie. Cela ne provoque pas réellement une requête à apporter à la base de données.
ligne 30 : La méthode flush () est appelée, Doctrine regarde à travers tous les objets qu'il est la gestion pour voir si ils ont besoin d'être persisté à la base de données.
=> Lorsque vous appelez la méthode flush (), elle exécute les requêtes dans le bon ordre
Comme pour l'insertion nous allons passer par 3 étapes
Controller :
Vous pouvez penser à un "Repository" comme une classe PHP dont le seul travail est de vous aider récupérez des entités d'une certaine classe.
ligne 14 : findAll() récupérer tous les données dans l'objet Categorie getRepository('FilmoBundle:Categorie')
View, Templating
Twig définit trois types de syntaxe particulière:
{{ ... }} Affichage
{% ... %} Il est utilisé pour exécuter des instructions telles que boucles for par exemple.
{# ... #} il est l'équivalent de la PHP / * commentaire * / syntaxe. Il est utilisé pour ajouter des commentaires simples ou multi-lignes. Le contenu des commentaires ne sont pas inclus dans les pages rendus.
Voici le vidéo de l'exemple :
À la prochaine part 3 : Symfony2 et les formulaires (Objet Acteur)
ligne 13 : Cette ligne récupère l'objet de gestionnaire d'entités de la doctrine, qui est responsable de la gestion du processus de la persistance et de la récupération des objets vers et depuis la base de données.
lignes 15, 20, 25 : Dans ses lignes, vous instancier et travailler avec l'objet $categorie comme un autre, objet PHP normal.
lignes 18, 23, 28 : persist () Méthode dit Doctrine de «gérer» l'objet $categorie. Cela ne provoque pas réellement une requête à apporter à la base de données.
ligne 30 : La méthode flush () est appelée, Doctrine regarde à travers tous les objets qu'il est la gestion pour voir si ils ont besoin d'être persisté à la base de données.
=> Lorsque vous appelez la méthode flush (), elle exécute les requêtes dans le bon ordre
View :
Symfony2 intègre le moteur de template Twig. Twig vous permet d'écrire, de modèles concis et lisible qui sont plus respectueux de concepteurs de sites Web et, à plusieurs égards, plus puissant que les modèles de PHP:Afficher les données
Comme pour l'insertion nous allons passer par 3 étapes
- Routing
- Controller
- View
Routing :
Controller :
Vous pouvez penser à un "Repository" comme une classe PHP dont le seul travail est de vous aider récupérez des entités d'une certaine classe.
ligne 14 : findAll() récupérer tous les données dans l'objet Categorie getRepository('FilmoBundle:Categorie')
View, Templating
Twig définit trois types de syntaxe particulière:
{{ ... }} Affichage
{% ... %} Il est utilisé pour exécuter des instructions telles que boucles for par exemple.
{# ... #} il est l'équivalent de la PHP / * commentaire * / syntaxe. Il est utilisé pour ajouter des commentaires simples ou multi-lignes. Le contenu des commentaires ne sont pas inclus dans les pages rendus.
Voici le vidéo de l'exemple :
Merci pour Votre Attention
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
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
Inscription à :
Articles (Atom)