Symfony 2 : chapitre 4 - Les services et les formulaires

2 874 vues

Publié le

Quatrième chapitre d'une formation Symfony 2,

  • Soyez le premier à commenter

Symfony 2 : chapitre 4 - Les services et les formulaires

  1. 1. 1
  2. 2. ABDELKADER RHOUATI ABDELKADER.RHOUATI@GMAIL.COM COURS SF 2.0 - 2013 Symfony 2.0 2
  3. 3. Chapitre 4 : Les services et les Formulaires 3
  4. 4. 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
  5. 5. Les services 5
  6. 6. 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
  7. 7. 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
  8. 8. TP 2/3  Le contenu de la classe Info 8
  9. 9. TP 3/3  Dans l’action ‘index’ du Contrôleur ‘FormationController’, appeler le service crée : 9
  10. 10. Les formulaires : Construction Un formulaire se construit sur un objet existant et son objectif est d’hydrater cet objet. 10
  11. 11. 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.html 11
  12. 12. Les formulaires : Gestion de la soumission d’un formulaire 12
  13. 13. 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
  14. 14. TP 2/6  Modifier le code de l’action ‘ajouter’ du contrôleur ‘FormationController’ 14
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. TP 6/6 18  Vérifier que les données ont été bien enregistrées
  19. 19. Les fixtures Les fixtures sont utilisées pour charger un ensemble de données dans une base de données 19

×