Génération des models depuis la base de données avec les webtools

Note

Dans cette partie, votre projet est déjà créé.
Si vous ne disposez pas d’une base de données mysql, vous pouvez télécharger celle-ci : messagerie.sql

Configuration

Vérifiez la configuration de la base de données avec les webtools à l’adresse http://127.0.0.1:8090/Admin/ :

Aller dans la partie models :

../../_images/models-part.png

Note

Le fichier de configuration se situe dans app/config/config.php

Modifier la configuration de la base de données pour utiliser la base messagerie :

  • Cliquer sur le bouton Edit config file

  • Sélectionner la partie database

../../_images/update-config-db.png
  • Saisir messagerie dans le champ dbName

  • Cliquer sur le bouton Test pour vérifier la connexion

  • Valider en cliquant sur le bouton Save configuration

../../_images/models-part-2.png

Génération

Pour générer tous les modèles, cliquez sur le bouton (Re-)create all models.

../../_images/models-generated.png

Générer le cache des modèles en cliquant sur le bouton Re-init all models cache :

../../_images/cache-generated.png

C’est tout !
Les modèles sont générés et opérationnels.
Vous pouvez maintenant visualiser les données.

Note

Il est possible de générer des modèles automatiquement lors de la création d’un projet avec l’option -m pour les modèles et ``-b`”” pour spécifier la base de données :

Ubiquity new quick-start -a  -m -b=messagerie

Vérification

Diagramme de classes

Toujours dans la partie models , cliquez sur l’étape models generation :

../../_images/step-models-generation.png

Cliquez ensuite sur le bouton Classes diagram :

../../_images/access-class-diagram.png

Vous pouvez voir le diagramme de classe, en utilisant l’API yUML.

../../_images/classes-diagram.png

Méta-datas des modèles

Pour voir les métadonnées d’un modèle créé :

Sélectionnez un modèle, et activez l’onglet Structure :

../../_images/structure-tab.png

Vous pouvez également visualiser le diagramme de classes partiel :

../../_images/settings-class-diagram.png

Validation des modèles

Le troisième onglet donne des informations sur la validation des objets :

../../_images/validation-info.png

Note

Les règles de validation ont été générées automatiquement avec les classes.
Elles sont définies par des annotations @validator sur chaque membre d’une classe et sont stockées dans le cache.

La bouton Validate instances est utilisé pour vérifier la validité des instances :

../../_images/validation-results.png

Note

Il est normal que, par défaut, toutes les instances de la base de données ne vérifient pas toutes les règles de validation.

Classes générées

Les classes générées sont situées dans le dossier app/models, si la configuration de mvcNS.models n’a pas été modifiée.

Note

Si vous voulez en savoir plus à ce sujet :

  • règles de mappage object/relational, voir le ORM part

  • interrogation de données et persistance, voir DAO part

La classe Settings :

app/models/Settings.php
 1namespace models;
 2class Settings{
 3
 4   #[Id]
 5   #[Column(name: 'id', nullable: false, dbType: 'int(11)')]
 6   #[Validator('id', constraints: ['autoinc'=>true])]
 7   private $id;
 8
 9   #[Column(name: 'name', nullable: true, dbType: 'varchar(45)')]
10   #[Validator('length', constraints: ['max'=>45])]
11   private $name;
12
13   #[OneToMany(mappedBy: 'settings', className: 'models\\Organizationsettings')]
14   private $organizationsettingss;
15}

Important

Toute modification sur les classes (code ou annotations) nécessite la réinitialisation du cache pour être prise en compte.

Ubiquity init-cache -t=models