Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Carpetas Model/ y Entity/ en aplicaciones Symfony

24 de abril de 2017

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).

@javiereguiluz

24 abril 2017, 11:06