Para los graficos del modelo de datos, recomiendo que usen Draw.io, es mucho mejor ademas no tiene esa marca de agua qeu estorba un poquito para leer la grafica, excelentee por est contenido
Symfony Framework
Cómo funciona este curso y que aprenderás sobre Symfony
Creando la vista de la empresa
Descripción del proyecto
Análisis del modelo de datos
Virtualizando con Homestead
Instalación de Symfony y creación del proyecto
Implementación del modelo usando Doctrine y Symfony CLI
La vista del administrador
Listar las empresas
Configurando la seguridad
Creación de usuarios
La vista del candidato
El layout
Envío de mails
Despliegue
Alternativas a Symfony
Cierre
Recordemos brevemente el proyecto, siempre es importante tenerlo fresco, más aún en esta etapa donde definiremos la columna vertebral de la aplicación: el modelo de datos.
Se trata de una bolsa de empleo donde empresas pueden publicar ofertas y usuarios que están en búsqueda de trabajo pueden postularse a ellas.
Como en cualquier aplicación de mediana complejidad, es importante dedicar un espacio especial a analizar cómo vamos a almacenar la información.
En nuestro caso, tratándose de un sistema transaccional, es bastante claro que un modelo relacional será lo más adecuado.
En esta clase no abordaré detalles de implementación (como qué motor de bases datos utilizaremos) y lo haré así a propósito, para concentrar la atención a definir, de la mejor manera que podamos, cuáles son las entidades que intervienen y cómo se relacionan entre sí.
Comencemos.
De la propia definición del problema emanan naturalmente las siguientes entidades:
Viéndolo en forma de Diagrama de Entidad-Relación obtendremos algo como:
Aquí vemos que:
Seguramente a medida que avancemos nuestro modelo se volverá más complejo, por el momento es suficiente con esta primera versión.
Si tuvieras que codear esto en php, ¿cómo lo harías?
Seguramente recurrirías a un modelo de clases, ¿cierto?
Algo como:
class Company
{
private $name;
private $offers = [];
}
class Offer
{
private $name;
private $company;
private $applicants = [];
}
class Applicant
{
private $name;
private $offers = [];
}
Claro que con estas definiciones apenas comenzamos… nos faltaría, al menos, crear los constructores de las clases y algunos métodos para darles vida:
class Company
{
private $name;
private $offers = [];
public function __construct(string $name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function addOffer(Offer $offer)
{
$this->offers[] = $offer;
}
public function getOffers() : array
{
return $this->offers;
}
}
Bien. Se va pareciendo un poco más a algo útil, ¿o no?
Lo mismo habría que hacer con las demás clases… pero hay un par de detalles que estamos dejando un poco de lado… ¿Cómo se van a llenar estos datos?, ¿Cómo vamos a manejar la persistencia?
Y aquí es donde las cosas empiezan a ponerse cuesta arriba, ¿o no? 😃
Si tuviésemos (¡o quisiésemos!) hacer todo esto por nuestra cuenta ciertamente tendríamos un arduo trabajo por delante.
Claro que si quisiéramos encararlo de ese modo no estaríamos estudiando Symfony 😃
Una parte super importante de un framework fullstack es un componente conocido como ORM (Object Relational Mapper).
Se trata de una serie de clases que permiten interactuar con una base de datos relacional de un modo simple y orientado a objetos.
En PHP existen varios ORMs (entre ellos Eloquent, Propel o ReadBean), sin embargo, por lejos, el más utilizado junto a Symfony es Doctrine y es precisamente el que utilizaremos en este curso.
A través de Doctrine podremos:
Todos estos detalles los veremos más adelante en el curso pero primero lo primero: ¡a montar un entorno de trabajo donde podamos desarrollar con comodidad!
Acompáñame a la siguiente clase donde te enseñaré a usar un entorno virtualizado para programar a gusto. 😉
Aportes 14
Preguntas 0
Para los graficos del modelo de datos, recomiendo que usen Draw.io, es mucho mejor ademas no tiene esa marca de agua qeu estorba un poquito para leer la grafica, excelentee por est contenido
He estado mirando y si que parecen muy diferentes…
Solo he trabajado con Eloquent, vamos a ver como va Doctrine
Uhhh, a mi me gusta Eloquent, me parece muy intuitivo, vamos a mirar Doctrine, el nombre es llamativo jaja
Todo pinta de lujo, me gusta esta metodología
No sé si la segunda clase estaba mal “puesta” o en realidad el curso es así, porque ahora comienzo a comprender desde la tercera clase, me da la impresión que la clase 2 iba más adelante y el profe se equivocó… bueno seguimos en la ruta… animo a todos
Genial a usar ORM y adios a los Store procedure xd
Yo nunca he usado esté framework aver que tal me va
Continuemos 😃 👍
Que emoción estaba esperando este curso desde hace mucho tiempo
Este framework me interesa.
Excelente. pero seria mejor con videotutorial
Ganas de ver como es Doctrine, sera mejor o peor que Eloquent?
He trabajado con Eloquent, supongo que Doctrine debe ser similar.
Una forma diferente de tomar un curso, es bueno siempre conocer nuevas maneras
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.