Generar modelos a partir de bases de datos con webtools
Nota
En esta parte, tu proyecto ya está creado.
Si no tienes una base de datos mysql a mano, puedes descargarte ésta: messagerie.sql
Configuración
Compruebe la configuración de la base de datos con webtools en http://127.0.0.1:8090/Admin/
:
Ir a la parte de models:
Nota
El archivo de configuración se encuentra en app/config/config.php.
Cambiar la configuración de la base de datos para utilizar la base de datos messagerie:
Haga clic en el botón Edit config file.
Seleccione la parte database
Introduzca messagerie en el campo dbName.
Haga clic en el botón Test para comprobar la conexión
Validar con el botón Save configuration.
Generación
Para generar todos los modelos, haga clic en el botón (Re-)create all models.
Genere la caché de modelos pulsando el botón Re-init all models cache:
Eso es todo.
Los modelos están generados y operativos. |br|Ahora puede ver los datos.
Nota
Es posible generar modelos automáticamente al crear un proyecto con la opción -m
para modelos y -b
para especificar la base de datos:
Ubiquity new quick-start -a -m -b=messagerie
Checking
Diagrama de clases
Todavía en la parte models, haga clic en el paso models generation:
A continuación, haga clic en el botón Classes diagram:
Puede ver el diagrama de clases, utilizando la API yUML
Modelos de meta-datas
Para ver los metadatos de un modelo creado:
Seleccione un modelo y active la pestaña Structure:
También puede ver el diagrama parcial de clases:
Validación de modelos
La tercera pestaña ofrece información sobre la validación de objetos:
Nota
Las reglas de validación se generan automáticamente con las clases. |br|Se definen mediante anotaciones @validator
en cada miembro de una clase y se almacenan en caché.
El botón Validate instances sirve para comprobar la validez de las instancias:
Nota
Es normal que por defecto todas las instancias de la base de datos no comprueben todas las reglas de validación.
Clases generadas
Las clases generadas se encuentran en la carpeta app/models, si no se ha modificado la configuración de mvcNS.models.
Nota
Si quiere saber más sobre:
La clase 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}
Importante
Cualquier modificación en las clases (código o anotaciones) requiere que se tenga en cuenta el reinicio de la caché.
Ubiquity init-cache -t=models