Como crear entidades usando el ORM Doctrine de PHP
Una entidad no es mas que un archivo en el proyecto. Este archivo contiene una clase. El nombre de la clase es el nombre de la entidad.
Cada entidad estara directamente acoplada con una tabla de la base de datos. Cada propiedad de la clase sera un campo en la tabla de la base de datos correspondiente.
Primero creamos un archivo llamado User.php. Este archivo estara dentro del namespace Application\Entities;
<?php
namespace Application\Entities;
class User
{
}
Ahora usamos la clase ORM de Doctrine. Y acoplamos la clase User con la tabla ‘users’ de base de datos. Es importante tener intalados los siguientes paquetes en el proyecto:
composer require doctrine/orm doctrine/annotations
<?php
namespace Application\Entities;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="users")
**/
class User
{
}
La clase quedo acoplada al nombre de la tabla users. Importante tambien indicar que sera una entidad de doctrine con el comentario(anotacion) @ORM\Entity.
Luego procedemos a agregar una propiedad por cada campo de la tabla users.
En este caso empezaremos por el campo ‘id’, el cual es primary key(@ORM\id), auto-incremental(@ORM\GeneratedValue) y de tipo integer(@ORM\Column(type=»integer»)).
<?php
namespace Application\Entities;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="users")
**/
class User
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
**/
protected $id;
}
Teniendo ya todas las propiedades con sus respectivos getters y setters, procedemos a ejecutar un comando para crear la entidad(tabla) en la base de datos.
php vendor/bin/doctrine orm:schema-tool:create
Este comando creara la tabla con todas las caracteristicas que le indicamos en la clase de la entidad.