framework-web:symfony:td2

Ceci est une ancienne révision du document !


TD n°2

Tous les exercices utilisent Semantic-UI pour la partie CSS.

  • Projet td2
  • Application gestion des contacts (Version BDD)
  1. Créer des routes, des contrôleurs, utiliser/structurer les templates
  2. Utiliser l'injection de dépendances
  3. Créer des services
  4. Créer des Entities
  5. Effectuer les opérations CRUD avec Doctrine

composer require doctrine maker

Configurer la connexion à la base dans le fichier .env :

# customize this line!
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/contacts"

# to use sqlite:
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db"

Créer la base de données contacts :

php bin/console doctrine:database:create

Créer la classe Contact :

php bin/console make:entity Contact

Modifier la classe (ajouter les membres et annotations Doctrine)

Générer le script de création de la table :

php bin/console doctrine:migrations:diff

Exécuter le script de migration pour effectuer les maj dans la BDD :

php bin/console doctrine:migrations:migrate

Réaliser à nouveau les opérations de migration après toute modification de la classe.

L'application devra permettre d'effectuer les opérations de base suivantes sur les contacts :

  • Lister les contacts
  • Rechercher un contact
  • Afficher un contact
  • Supprimer un contact
  • Modifier un contact
  • Ajouter un contact
  • Sélectionner des contacts

URL Méthode paramètre(s) Fonctionnalité
/contactsGET Liste des contacts
/contact/new GET Formulaire de création d'un contact
/contact/edit/1 GET index:entier Formulaire de modification du contact d'index 1
/contact/update POST Validation du formulaire d'ajout ou de modification
/contact/display/1 GET index:entier Affichage du contact d'index 1
/contacts/search POST Recherche et affiche les contacts correspondant au critère
/contacts/select POST Sélectionne le ou les contacts dont l'index est posté
/contacts/delete POST Supprime des contacts celui ou ceux dont l'index est posté
Namespace Classe/interface
App\Entity Contact
App\Service ContactSessionManager
IModelManager

La classe ContactSessionManager utilisera la Session pour stocker les instances de contact, et les index des contacts sélectionnés.

La structure suivante est à adopter :

  • framework-web/symfony/td2.1518482768.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)