Carpetas Model/ y Entity/ en aplicaciones Symfony

Buenos días.

En nuestros proyectos hasta la fecha, sólo utilizamos Doctrine ORM contra una base de datos MySQL. Por ello tenemos la carpeta Entity/ que guarda todas las clases pertenecientes a las distintas entidades de nuestras aplicaciones.

Sin embargo, hay situaciones donde tenemos modelos que no tienen una representación como tal en la base de datos. Por ejemplo.

//src\AppBundle\Entity\Activity.php
 
...
/**
 * @var Ribbon[]|ArrayCollection
 * @ORM\Column(type="json_serialized")
 */
$ribbons = array();
...
 
//src\AppBundle\Model\Ribbon.php
class Ribbon {
  private $colour;
  private $size;
  ...
}

¿Cómo veis el nombre de la carpeta Model/? ¿Debería mover también las entidades a la carpeta Model/ y tener todos los modelos juntos?

Muchas gracias por vuestras opiniones

P.D: json_serialized es un tipo personalizado que se ocupa de serializar o deserializar los campos en formato json utilizando el componente serializer de symfony

Respuestas

#1

Mi experiencia es exactamente la que cuentas. En aplicaciones complejas que tienen tanto entidades de Doctrine como clases normales de modelo, lo que veo es que utilizan Entity/ y Model/. Mover las entidades de Doctrine a Model/ no se si traería muchas ventajas, pero sí que traería algunas desventajas como que el lugar por defecto es Entity/ (así que tendrías que configurar algunas cosas en tu config.yml y quizás, incluso pasar en algunos comandos parámetros con la nueva localización de la entidades).