Symfony 2 : chapitre 4 - Les services et les formulaires

Preview:

DESCRIPTION

Quatrième chapitre d'une formation Symfony 2,

Citation preview

1

ABDELKADER RHOUATI ABDELKADER.RHOUATI@GMAIL.COMCOURS SF 2.0 - 2013

Symfony 2.02

Chapitre 4 : Les services et les Formulaires

3

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

Les services 5

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

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

TP 2/3

Le contenu de la classe Info

8

TP 3/3

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

9

Les formulaires : Construction

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

10

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

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

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

TP 2/6

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

14

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

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

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

TP 6/6 18

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

Les fixtures

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

19

Recommended