19
1

Symfony 2 : chapitre 4 - Les services et les formulaires

Embed Size (px)

DESCRIPTION

Quatrième chapitre d'une formation Symfony 2,

Citation preview

Page 1: Symfony 2 : chapitre 4 - Les services et les formulaires

1

Page 2: Symfony 2 : chapitre 4 - Les services et les formulaires

ABDELKADER RHOUATI [email protected] SF 2.0 - 2013

Symfony 2.02

Page 3: Symfony 2 : chapitre 4 - Les services et les formulaires

Chapitre 4 : Les services et les Formulaires

3

Page 4: Symfony 2 : chapitre 4 - Les services et les formulaires

Les services

Il s’agit d’un objet PHP qui effectue une sorte de tâche globale

Il est accessible depuis n’importe où dans votre code Un conteneur de services est une sorte de super-objet

qui gère tous les services L’intérêt du conteneur est d’organiser et d’instancier

vos services Chaque service est persistant Liste des services disponibles

php app/console container:debug

4

Page 5: Symfony 2 : chapitre 4 - Les services et les formulaires

Les services 5

Page 6: Symfony 2 : chapitre 4 - Les services et les formulaires

Les services

Après la création de notre service, il faut signaler au conteneur de services, Un service se définit par sa classe ainsi que sa configuration

La méthode load() de cet objet (Depen) est automatiquement exécutée par Symfony2 lorsque le bundle est chargé. Et dans ce tte méthode on charge le fichier de configuration services.yml

L’intérêt principal est de bien découpler les fonctions de notre application

6

Page 7: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 1/3

En utilisant le système de configuration yml, Ajouter une route ‘ensao_formation_index’

Ajouter l’action ‘indexAction’ qui retourne un rendu HTML.

Créer un service ‘ensao_formation.info’: Créer un dossier dans l’arborescence du bundle ‘InfoEnsao’

Créer à l’intérieure une classe Info.php

Ajouter la configuration pour le service crée

7

Page 8: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 2/3

Le contenu de la classe Info

8

Page 9: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 3/3

Dans l’action ‘index’ du Contrôleur ‘FormationController’, appeler le service crée :

9

Page 10: Symfony 2 : chapitre 4 - Les services et les formulaires

Les formulaires : Construction

Un formulaire se construit sur un objet existant et son objectif est d’hydrater cet objet.

10

Page 11: Symfony 2 : chapitre 4 - Les services et les formulaires

Les formulaires : Gestion de la soumission d’un formulaire

La soumission d’un formulaire se fait en 3 étapes : Vérifier que la requête est de quel type Faire le lien entre les variables de la requête et le

formulaire Tester les valeurs pour vérifier qu’elles sont valides

avec ce que l’objet attend http://symfony.com/fr/doc/current/book/forms.ht

ml

11

Page 12: Symfony 2 : chapitre 4 - Les services et les formulaires

Les formulaires : Gestion de la soumission d’un formulaire 12

Page 13: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 1/6

Configurer votre base de données (slide 33/34) Créer une entité : Contact (utiliser yml comme configuration)

php app/console generate:doctrine:entity Penser à lancer les commandes suivantes :

php app/console doctrine:schema:update –dump-sql php app/console doctrine:schema:update –force

Ajouter un lien contact dans le template base.html.twig

Au moment de création de l’entity, ajouter trois champs (name et email de type string , message de type text)

13

Page 14: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 2/6

Modifier le code de l’action ‘ajouter’ du contrôleur ‘FormationController’

14

Page 15: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 3/6

Modifier le code de la vue ‘ajouter.html.twig’

Vérifier que les données ont été bien enregistrées Vous devriez avoir comme suit:

15

Page 16: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 4/6

Créer une autre entity ‘Ville’ avec un seul champ name de type string

Ajouter quelques enregistrement dans la table ville via phpmyadmin

Ajouter une relation de type ‘manyToOne’ Modifier le fichier ‘Contact.orm.yml’

16

Page 17: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 5/6

Lancer les commandes suivantes : php app/console doctrine:generate:entities EnsaoFormationBundle:Contact

Cette commande va générer les getters et setters pour le nouveau champ ‘ville’ de la classe ‘Contact’

php app/console doctrine:schema:update --dump-sql

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

Modifier l’action ‘ajouter’

17

Page 18: Symfony 2 : chapitre 4 - Les services et les formulaires

TP 6/6 18

Vérifier que les données ont été bien enregistrées

Page 19: Symfony 2 : chapitre 4 - Les services et les formulaires

Les fixtures

Les fixtures sont utilisées pour charger un ensemble de données dans une base de données

19