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 :
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
Saisir messagerie dans le champ dbName
Cliquer sur le bouton Test pour vérifier la connexion
Valider en cliquant sur le bouton Save configuration
Génération
Pour générer tous les modèles, cliquez sur le bouton (Re-)create all models.
Générer le cache des modèles en cliquant sur le bouton Re-init all models cache :
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 :
Cliquez ensuite sur le bouton Classes diagram :
Vous pouvez voir le diagramme de classe, en utilisant l’API yUML.
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 :
Vous pouvez également visualiser le diagramme de classes partiel :
Validation des modèles
Le troisième onglet donne des informations sur la validation des objets :
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 :
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 :
La classe Settings :
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}
1namespace models;
2class Settings{
3 /**
4 * @id
5 * @column("name"=>"id","nullable"=>false,"dbType"=>"int(11)")
6 * @validator("id","constraints"=>array("autoinc"=>true))
7 */
8 private $id;
9
10 /**
11 * @column("name"=>"name","nullable"=>true,"dbType"=>"varchar(45)")
12 * @validator("length","constraints"=>array("max"=>45))
13 */
14 private $name;
15
16 /**
17 * @oneToMany("mappedBy"=>"settings","className"=>"models\\Organizationsettings")
18 */
19 private $organizationsettingss;
20}
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