framework-web:symfony:td2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
framework-web:symfony:td2 [2018/02/12 02:15] – créée jcheronframework-web:symfony:td2 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 16: Ligne 16:
   - Créer des Entities   - Créer des Entities
   - Effectuer les opérations CRUD avec Doctrine   - Effectuer les opérations CRUD avec Doctrine
 +
 +===== Containtes techniques =====
 +
 +==== Flash messages ====
 +Vous utiliserez les [[https://symfony.com/doc/current/controller.html#flash-messages|flash messages]] pour tous les messages à afficher.
 +==== Intégrer Doctrine au projet : ====
 +
 +
 +<sxh bash;gutter:false>
 +composer require doctrine maker
 +</sxh>
 +
 +
 +==== Création de la base de données ====
 +Configurer la connexion à la base dans le fichier **.env** :
 +<sxh bash;title:.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"
 +</sxh>
 +
 +Créer la base de données **contacts** :
 +<sxh bash;gutter:false>
 +php bin/console doctrine:database:create
 +</sxh>
 +
 +==== Création d'entity  et génération de table ====
 +
 +Créer la classe **Contact** :
 +<sxh bash;gutter:false>
 +php bin/console make:entity Contact
 +</sxh>
 +
 +Modifier la classe (ajouter les membres et annotations Doctrine)
 +
 +Exemple de classe annotée :
 +<sxh php;title:app/Entity/Product.php>
 +// 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;
 +}
 +</sxh>
 +
 +
 +Générer le script de création de la table :
 +<sxh bash;gutter:false>
 +php bin/console doctrine:migrations:diff
 +</sxh>
 +
 +Exécuter le script de migration pour effectuer les maj dans la BDD :
 +<sxh bash;gutter:false>
 +php bin/console doctrine:migrations:migrate
 +</sxh>
 +
 +
 +Réaliser à nouveau les opérations de migration après toute modification de la classe.
 +
 +
  
 ===== Application, fonctionnalités ===== ===== Application, fonctionnalités =====
-L'application devra permettre d'effectuer les opérations de base suivantes sur les contacts :+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   * Lister les contacts
Ligne 46: Ligne 124:
 |<100%>| |<100%>|
 ^Namespace ^Classe/interface ^ ^Namespace ^Classe/interface ^
-|App\Model | Contact | +|App\Entity | Contact | 
-|App\Service ContactSessionManager +|App\Repository ContactRepository 
-|::: | IModelManager | +|App\Service | IModelManager |
- +
-{{:framework-web:symfony:classesdiagramcontacts.png|}} +
- +
-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 :+
  
-{{:framework-web:symfony:structure-templates.png?700|}}+{{:framework-web:symfony:td2:classesdiagramcontacts.png|Diagramme de classes v2}}
  
  
  • framework-web/symfony/td2.1518398129.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)