Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| framework-web:symfony:td2 [2018/02/12 02:17] – [Objectifs] jcheron | framework-web:symfony:td2 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 18: | Ligne 18: | ||
| ===== Containtes techniques ===== | ===== Containtes techniques ===== | ||
| - | Intégrer Doctrine au projet : | + | |
| + | ==== Flash messages ==== | ||
| + | Vous utiliserez les [[https:// | ||
| + | ==== Intégrer Doctrine au projet : ==== | ||
| <sxh bash; | <sxh bash; | ||
| composer require doctrine maker | composer require doctrine maker | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ==== Création de la base de données ==== | ||
| + | Configurer la connexion à la base dans le fichier **.env** : | ||
| + | <sxh bash; | ||
| + | # customize this line! | ||
| + | DATABASE_URL=" | ||
| + | |||
| + | # to use sqlite: | ||
| + | # DATABASE_URL=" | ||
| + | </ | ||
| + | |||
| + | Créer la base de données **contacts** : | ||
| + | <sxh bash; | ||
| + | php bin/console doctrine: | ||
| + | </ | ||
| + | |||
| + | ==== Création d' | ||
| + | |||
| + | Créer la classe **Contact** : | ||
| + | <sxh bash; | ||
| + | php bin/console make:entity Contact | ||
| + | </ | ||
| + | |||
| + | Modifier la classe (ajouter les membres et annotations Doctrine) | ||
| + | |||
| + | Exemple de classe annotée : | ||
| + | <sxh php; | ||
| + | // this use statement is needed for the annotations | ||
| + | use Doctrine\ORM\Mapping as ORM; | ||
| + | |||
| + | class Product | ||
| + | { | ||
| + | /** | ||
| + | * @ORM\Id | ||
| + | * @ORM\GeneratedValue | ||
| + | * @ORM\Column(type=" | ||
| + | */ | ||
| + | private $id; | ||
| + | |||
| + | /** | ||
| + | * @ORM\Column(type=" | ||
| + | */ | ||
| + | private $name; | ||
| + | |||
| + | /** | ||
| + | * @ORM\Column(type=" | ||
| + | */ | ||
| + | private $price; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | Générer le script de création de la table : | ||
| + | <sxh bash; | ||
| + | php bin/console doctrine: | ||
| + | </ | ||
| + | |||
| + | Exécuter le script de migration pour effectuer les maj dans la BDD : | ||
| + | <sxh bash; | ||
| + | php bin/console doctrine: | ||
| + | </ | ||
| + | |||
| + | |||
| + | Réaliser à nouveau les opérations de migration après toute modification de la classe. | ||
| ===== Application, | ===== Application, | ||
| - | L' | + | L' |
| * Lister les contacts | * Lister les contacts | ||
| Ligne 55: | Ligne 124: | ||
| |< | |< | ||
| ^Namespace ^Classe/ | ^Namespace ^Classe/ | ||
| - | |App\Model | Contact | | + | |App\Entity |
| - | |App\Service | + | |App\Repository |
| - | |::: | IModelManager | | + | |App\Service |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | La classe **ContactSessionManager** utilisera la Session pour stocker les instances de contact, et les index des contacts sélectionnés. | + | |
| - | + | ||
| - | + | ||
| - | ===== Templates ===== | + | |
| - | + | ||
| - | La structure suivante est à adopter : | + | |
| - | {{: | + | {{: |