Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Creando entidades con Symfony - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 24 de noviembre de 2020 por Amadeo M.

74 visualizaciones

Descargar la transcripción

Bueno, es el momento de crear ya la propia aplicación. 00:00:00
Nuestra aplicación es muy sencilla. 00:00:04
Una relación entre departamentos y empleados. 00:00:05
Si vemos su modelo de entidad-relación, sería algo como esto. 00:00:09
Un empleado cuyo identificador es un IF, tiene un nombre y una fecha de nacimiento. 00:00:12
Y un departamento con un identificador ficticio y un nombre. 00:00:17
un departamento va a tener entre uno y el empleado o cero 00:00:21
y un empleado pertenece a un único departamento 00:00:26
un esquema bien simple 00:00:30
bueno una vez que tenemos esto 00:00:32
tenemos que irnos ya a ver que nos ofrece Symfony para hacer esto 00:00:34
bueno podemos ya directamente decir php bin console 00:00:40
si pulsamos aquí vemos ya montones de posibilidades 00:00:45
nosotros lo que queremos hacer es una entidad 00:00:50
con lo cual justo, justo tenemos aquí 00:00:52
make entity 00:00:54
que crea o actualiza clases 00:00:55
o entidades de doctrina 00:00:58
por justo lo que queremos 00:01:00
con lo cual vamos a decir 00:01:02
make entity 00:01:04
y nos pide la entidad 00:01:06
la criminal que vamos a hacer es la de departamento 00:01:09
entonces vamos a crear la entidad 00:01:11
departamento 00:01:14
y nos pide 00:01:15
una propiedad 00:01:17
El identificador es ficticio, con lo cual realmente no es un atributo que nosotros queramos definir, que lo haga él si quiere. 00:01:19
Nuestro único atributo importante es el nombre, con lo cual vamos a decírselo, nombre. 00:01:27
¿Y de qué tipo hay? 00:01:33
Digo, pues en principio es un string, pero voy a ver qué más posibilidades tengo. 00:01:35
Voy a darle al interrogante. 00:01:38
Y veo que tengo string, text, boolean, integer, float y un montón más. 00:01:40
de momento de las que veo 00:01:45
de los tipos principales 00:01:47
la que más adecua es string 00:01:49
que es la que es por defecto 00:01:51
con lo cual doy al enter 00:01:52
¿qué longitud? 00:01:53
pues un nombre de departamento 00:01:55
no creo que tenga más de 50 caracteres 00:01:56
le doy 50 00:01:58
y digo ¿puede ser nulo este campo? 00:01:59
digo pues no 00:02:03
con lo cual por defecto no 00:02:04
y me pregunta si quiero otra propiedad 00:02:05
no me hace falta más propiedades 00:02:09
con lo cual le doy 00:02:11
al enter 00:02:13
Bien, vamos a ir a hacer ahora la entidad de empleado. Voy, tecleo lo mismo y voy a hacer la entidad empleado. 00:02:15
miro y digo, bueno, ¿qué campos tengo? 00:02:28
digo, el primer campo que tengo es el NIF 00:02:33
el NIF sí es un campo que tiene las características propias 00:02:34
entonces le doy, campo NIF 00:02:37
dice, ¿es de tipo string? 00:02:40
digo, sí, porque son 8 dígitos y una letra 00:02:42
o si es el NIE, pues una X, 7 dígitos y una letra 00:02:45
sí es un string 00:02:48
¿de cuántos caracteres? de 9 00:02:50
¿puede ser nulo? no 00:02:52
bueno, añadimos otra propiedad 00:02:56
digo, ¿qué otra propiedad voy a añadir? 00:03:01
digo, por la otra propiedad que voy a añadir es el nombre 00:03:02
un nombre 00:03:05
el nombre completo de la persona es un string 00:03:06
y vamos a ponerle simplemente 00:03:09
que sean por 100 caracteres 00:03:11
¿va a haber nulos? 00:03:13
no, un nombre tiene que tener 00:03:15
¿hay algún campo más? 00:03:17
digo, sí, la fecha de nacimiento, nacido 00:03:19
digo, ¿es un string? 00:03:21
digo, bueno, realmente es una fecha 00:03:24
voy a ver si hay algún tipo para fecha 00:03:25
miro un poco más abajo 00:03:26
y veo que por aquí aparece algo que se llama date o fecha, 00:03:28
con lo cual le voy a dar date. 00:03:33
¿Puede ser nula la fecha de nacimiento? 00:03:35
Bueno, podría intentar que fuera nula por si hay algún problema 00:03:38
o decirle que no, voy a dejarlo que sí, que pueda ser nula. 00:03:41
¿Y hay algún dato más que quiera? 00:03:47
Digo, jo, yo de un empleado quiero saber a qué departamento pertenece, 00:03:49
así que debería poner su departamento. 00:03:52
Digo, ¿y qué tipo de campo es esto? 00:03:57
digo, pues un string no, será un código 00:03:59
de la entidad departamento 00:04:01
digo, anda, es una relación 00:04:03
digo, y un empleado 00:04:05
¿cuántos departamentos puede tener? 00:04:08
pues un empleado puede tener 00:04:10
un único departamento 00:04:11
y un departamento, ¿cuántos empleados puede tener? 00:04:12
muchos, o sea 00:04:15
que es many, muchos empleados 00:04:17
to one 00:04:19
un departamento 00:04:21
así que es este tipo 00:04:23
many to one 00:04:25
Pues escriba aquí many to one. 00:04:26
Dice, ¿con qué clase está relacionada? 00:04:32
Pues, ¿con qué entidad está relacionada? 00:04:34
Pues está relacionada con la entidad departamento. 00:04:36
Dice, un empleado, esto resumiendo es que un empleado puede no estar asignado a ningún departamento, 00:04:41
digo, puede ser nulo, bueno, podría ser, podría ser un caso en que un empleado, 00:04:47
en un momento dado, al crearlo no estuviera asignado a un empleado, 00:04:52
Podría ser que sí. Vamos a dejarle que sí. Y ahora me pregunta la parte recíproca. Es decir, ¿quiero en departamento añadir una colección de empleados que pertenece a ese departamento? 00:04:56
Digo, pues mira, sí, me vendría muy bien tener algo que yo pudiera decir de tal departamento, devuélveme todos sus empleados. Así que le voy a decir que sí. 00:05:11
¿y cómo quiero que se llame ese campo dentro del departamento? 00:05:19
pues le voy a llamar empleados, tal como dice aquí 00:05:23
¿quiere alguna propiedad más? 00:05:25
digo no 00:05:28
bueno, pues en este momento 00:05:28
ya tengo creadas 00:05:31
las entidades correspondientes 00:05:33
vamos a ver dónde estamos guardando 00:05:35
esa información 00:05:37
nos vamos al directorio src 00:05:38
y en ese directorio 00:05:41
vemos que hay otro subdirectorio 00:05:43
que se llama entities 00:05:46
vamos a entrar en él 00:05:47
y aquí tendremos departamento PHP y empleado PHP 00:05:48
vamos a ver cómo es departamento PHP 00:05:53
y vemos que ha creado una clase departamento 00:05:57
en el cual hay un campo id que se ha inventado él 00:06:02
nosotros no hemos dicho nada del id 00:06:06
un campo nombre y un campo empleados 00:06:08
y ahora dentro de estos ha creado un constructor 00:06:12
con toda la colección de empleados, ha creado guetes y setes 00:06:15
y además ha añadido incluso métodos de añadir un empleado, borrar un empleado 00:06:22
y si continuamos más abajo, pues ya vemos que ahí finaliza toda la clase empleada. 00:06:30
Además ha incluido unas anotaciones propias de Doctrine, 00:06:37
En el cual nos dice que esta entidad, departamento, es una entidad y su repositorio será la clase departamento-repositorio. 00:06:41
Además, id dice que es un id, que es un identificador, que es un valor autogenerado y que es de tipo entero. 00:06:52
Que string, que nombre es de tipo string y tiene un tamaño de 50. 00:06:58
Y que empleados es una relación one to many, un departamento tendrá muchos empleados. 00:07:04
que está relacionado con la clase empleado 00:07:10
y que viene a través de departamento 00:07:13
bueno, pues todo esto ha creado para departamento 00:07:17
vamos a ver que ha creado ahora para empleado 00:07:20
para empleado nos ha creado también una clase 00:07:23
que tiene un identificador, que se ha inventado él 00:07:29
un if, que era nuestro campo 00:07:31
nuestro campo clave hasta ahora 00:07:34
un campo nombre 00:07:37
un campo de nacimiento, una fecha de nacimiento que es de tipo date 00:07:40
y un many to one, un campo de departamento 00:07:47
en el cual está relacionado con la clase departamento 00:07:50
bueno, si seguimos viendo el código 00:07:54
vemos que están los getes y los setes correspondientes a esta clase 00:07:58
y ya estaría todo este código funcionando 00:08:02
Podríamos entrar ahora y ver en el directorio repository que ya ha creado también un repositorio de departamento y otro para empleado. 00:08:08
Vamos a verlo rápidamente, el de departamento al menos. 00:08:22
Y en él nos dice que hay una serie de campos y de métodos que ya están funcionando. 00:08:26
como es find, encontrar mediante un id, findOneBy, en el cual pondremos los criterios y nos devolverá el primero, 00:08:30
findAll, que nos devolverá todos, y findBy, que poniendo unos criterios nos devolverá por esos criterios. 00:08:41
Bueno, aquí vemos un pequeño código e incluso deja unos ejemplos de cómo podíamos hacer algo de código que nos pueda servir posteriormente. 00:08:49
Lo mismo tendremos en empleado y con esto ya tenemos hecho las dos entidades y preparadas ya para que dentro de poco hagamos el cruz de todas ellas. 00:08:59
Idioma/s:
es
Autor/es:
Amadeo Mora
Subido por:
Amadeo M.
Licencia:
Dominio público
Visualizaciones:
74
Fecha:
24 de noviembre de 2020 - 15:51
Visibilidad:
Público
Centro:
IES CLARA DEL REY
Duración:
09′ 12″
Relación de aspecto:
16:9 Es el estándar usado por la televisión de alta definición y en varias pantallas, es ancho y normalmente se le suele llamar panorámico o widescreen, aunque todas las relaciones (a excepción de la 1:1) son widescreen. El ángulo de la diagonal es de 29,36°.
Resolución:
1360x768 píxeles
Tamaño:
17.30 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid