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
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. 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
9. TP 3/3
Dans l’action ‘index’ du Contrôleur ‘FormationController’,
appeler le service crée :
9
10. Les formulaires : Construction
Un formulaire se construit sur un
objet existant et son objectif est
d’hydrater cet objet.
10
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
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. TP 2/6
Modifier le code de l’action ‘ajouter’ du contrôleur
‘FormationController’
14
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. 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. 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. TP 6/6 18
Vérifier que les données ont été bien enregistrées
19. Les fixtures
Les fixtures sont utilisées pour
charger un ensemble de données dans
une base de données
19
Hinweis der Redaktion
FormBuilder est un constructeur de formulaire. « créer un formulaire autour de l’objet X »
Un formulaire n’est pas du tout obligé d’hydrater tous les attributs d’un objet.
FormBuilder est un constructeur de formulaire. « créer un formulaire autour de l’objet X »
Un formulaire n’est pas du tout obligé d’hydrater tous les attributs d’un objet.
FormBuilder est un constructeur de formulaire. « créer un formulaire autour de l’objet X »
Un formulaire n’est pas du tout obligé d’hydrater tous les attributs d’un objet.
FormBuilder est un constructeur de formulaire. « créer un formulaire autour de l’objet X »
Un formulaire n’est pas du tout obligé d’hydrater tous les attributs d’un objet.