Guía de Symfony2 – Capítulo 9 – Manipulando datos con Doctrine

Un nuevo capítulo lanzado de la guía de Symfony2 publicado en Maestros del Web. En esta entrega les hablo sobre como podemos manipular datos en nuestra base de datos utilizando Doctrine.

Hablamos en primer lugar sobre en Entity Manager quien se encarga de tratar con los datos y proveernos de esa abstracción. Hablamos sobre los métodos para obtener datos y cumplir las acciones de un CRUD. También y como parte principal hablamos del DQL que nos permite ejecutar SQL sin pensar en el motor ya que son operaciones sobre objetos y utilizamos el repositorio para separar la lógica de las acciones de las interacciones con la base de datos. Por supuesto todo esto lo vemos con ejemplos para plasmar con más claridad la teoría.

Si pensáramos nuevamente en la arquitectura Model-View-Controller (MVC) estaríamos viendo que la presentación de los datos (View) se encuentran en las plantillas, la programación del modelado de datos y trabajo con los mismos (Model) se encuentran en las Entidades y Repositorios.

Por último nos queda la lógica de la aplicación (Controller) que se mantendrá dentro de los actions programados dentro de cada Controlador. Esto al mirarlo desde un enfoque de arquitectura de software demuestra un proyecto muy ordenado y por sobre todo con facilidades de mantener y escalar a futuro, con un equipo de desarrollo donde cada quién maneja su parte. Algo que siempre suelo decir es que si una página llega a tener más de 20 líneas de código es porque nos estamos olvidando de modularizar y es probable que una de las partes del MVC no se encuentre en el lugar correcto.

En el siguiente capítulo, el último orientado al modelado, hablaremos sobre la validación de los datos que Doctrine nos proporciona y sobre como Symfony nos ayuda a crear objetos de tipo formularios para que los usuarios finales interactuen con la aplicación.

2 comentarios en “Guía de Symfony2 – Capítulo 9 – Manipulando datos con Doctrine”

  1. Que tal, estoy empezando a utilizar symfony y me parece que es un excelente framework, sin embargo, tengo una duda en cuanto al manejo de entidades.
    Les explico con un ejemplo muy sencillo pero que se entiende muy bien.
    Tengo una entidad “USUARIO” la cual tiene sus atributos, entre ellos un status, pero necesito que este ultimo sea una entidad “STATUS”, para poder utlizarlo de la siguiente manera:
    $usuario=new USUARIO();
    $variable=$usuario->getStatus()->getDescription();

    Alguien sabe si es posible hacer esto? y que necesitaria hacer para lograrlo?
    De antemano muchisimas gracias :).

    1. Gustavo, claro que puedes hacerlo. Simplemente crea un Entity Status (la convención es con las iniciales solamente en mayúscula no la palabra completa USUARIO = Usuario, STATUS = Status), y al tener los dos entities crea una relación uno a muchos entre ambos y ya está. Para crear la relación uno a muchos lo puedes ver en el capítulo anterior..

      Por otro lado, para el caso de los estados también puedes crear una tabla paramétrica para no estar creando tantas tablas menores. En este artículo puedes investigar un poco aunque está sobre la versión anterior de Symfony te va a servir como referencia.

Comenta este artículo