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:20] – [Classes] 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 56: | Ligne 125: | ||
^Namespace ^Classe/ | ^Namespace ^Classe/ | ||
|App\Entity | Contact | | |App\Entity | Contact | | ||
- | |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 : | + | |
- | {{: | + | {{: |