framework-web:symfony:td2

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

Vous utiliserez les flash messages pour tous les messages à afficher.

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)

Exemple de classe annotée :

// this use statement is needed for the annotations
use Doctrine\ORM\Mapping as ORM;

class Product
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $name;

    /**
     * @ORM\Column(type="decimal", scale=2, nullable=true)
     */
    private $price;
}

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 mêmes opérations de base sur les contacts que dans le précédent projet (votre précédent code - contrôleurs et vues - peut donc être intégralement repris) :

  • 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\Repository ContactRepository
App\Service IModelManager

Diagramme de classes v2

  • framework-web/symfony/td2.txt
  • Dernière modification : il y a 5 ans
  • de 127.0.0.1