Entre las tareas mas comunes pero importantes para el desarrollo de una aplicación web implica la persistencia y la lectura de la información desde y hacia una base de datos, Symfony 2 viene integrado con un ORM (Object Relation Mapper) llamado Doctrine cuyo único objetivo es darnos una herramienta bastante poderosa para realizar todas las tareas mencionadas al principio y de manera muy fácil. Doctrine nos permite trabajar a través de una capa de abstracción cada una de las tablas de una base de datos y tratarlos como objetos, esto lo realiza mediante las entidades, cuando hablamos de una entidad nos referimos a una clase PHP que contendrá sus respectivas propiedades como también sus métodos getters y setters para la persistencia y acceso a los datos.
En esta nueva lección vamos aprender a trabajar con Doctrine el ORM de Symfony 2, inicialmente vamos a crear paso a paso la entidad para nuestro módulo de usuarios y esto lo haremos desde la linea de comandos definiendo así cada una de las propiedades que va conformar nuestra entidad, posteriormente vamos a crear una tabla users a partir de la entidad previamente creada mostrando así la capacidad que tiene Symfony 2 para generar de manera muy sencilla e intuitiva todas las entidades que necesitemos definir dentro de nuestra aplicación. Finalmente vamos a dar nuestros primeros pasos con Doctrine conociendo varios métodos que son habitualmente necesarios dentro de una aplicación. Vamos a trabajar dentro de nuestro controlador creando un par de acciones a partir de nuestras rutas creadas en la anterior lección de tal forma ir conociendo la potencialidad de Doctrine recuperando nuestros primeros registros desde la base de datos.
Sin más te dejo con el video donde te hablo de todo lo mencionado anteriormente y otras características más puestas a la práctica:
Ahora dime tu, qué te pareció dar nuestros primeros pasos conociendo Doctrine? esta lección tan solo es una introducción con el trabajo de Doctrine y por qué digo una introducción? pues porque a lo largo del curso y el desarrollo de nuestra aplicación de asignaciones vamos a ir conociendo nuevas características que nos ofrece este grandioso ORM. Así es que sugiero que no te pierdas las próximas lecciones del curso de Symfony 2 que estaré publicando en este mi blog 8-)
Finalmente quisiera por favor que me cuentes te experiencia con Doctrine y cómo te fue con esta lección dejándome un comentario acá abajo en la caja de comentarios. Así mismo te pido por favor que si esta lección te pareció interesante lo compartas en las redes sociales de esa manera mi trabajo puede llegar a mas personas. Comparto contigo al final de la lección el enlace al repositorio oficial del proyecto de asignaciones que estamos desarrollando en el curso.
Sigue todas las lecciones del curso AQUÍ.
Saludos!!!

Buen dia, Gracias por tus tutos, tengo una duda, me sale el un error (Ver imagen) para la configuracion de la base de datos.
Hola Adriann, revisa la configuración de date.timezone en el php.ini de tu servidor, te indica que lo debes definir como Europe/Paris pero también lo puedes definir como UTC. Saludos!!!
Ahora me sale esto:
To enhance your Symfony experience, it’s recommended that you fix the following:
Install PDO drivers (mandatory for Doctrine).
Revisa el archivo php.ini si tienes habilitado la extensión pdo_mysql de no ser asi habilitalo generalmente es quitando ; (punto y coma) que trae por delante y reinicia tu servidor. Saludos.
Hola buenas noches, me sale el siguiente error que no se como solucionar.
In most cases you should be fine, but please verify there is no inconsistencies between data provided by Symfony and the intl extension. See https://github.com/symfony/symfony/issues/15007 for an example of inconsistencies you might run into.
Con que versión del framework estas trabajando, si es la 2.7 LTS puedes apoyarte del repositorio del proyecto que comparto al final de la lección, quizá solo es un detalle que se te está yendo. Saludos!!!
Perdón por no contestar antes, la version es la 3.0.4
Gracias
Te recomiendo que sigas el curso con la versión LTS del framework, es decir, la versión 2.7.x ya que he leído otros comentarios en los que tenían algunos inconvenientes con la versión 3 por ejemplo en la parte de formularios. Aunque otros también me dijeron que siguieron el curso sin problema con la versión 3 siempre y cuando se apoyen de la documentación oficial del framework. Si tienes muchos inconvenientes puedes optar inicialmente con la versión 2.7 y ya después para practicar puedes hacerlo con la versión 3. Saludos!
De acuerdo. muchas gracias por responder y muy buen tuto. Saludos!
Gracias de antemano!
Hola Oskar, así es, incluso en Symfony 3.1 sucede lo propio y eso lo decides de acuerdo al atributo que vas a crear ya que puede crear un campo nulo por defecto o único para algunos casos que sea necesario como un campo username o email por ejemplo. Saludos.
Hola, estoy realizando el curso y cuando quiero crear la tabla por linea de comando poniendo:
php app/console doctrine:schema:update –force
Me dice el siguiente error:
[DoctrineCommonAnnotationsAnnotationException]
[Semantical Error] Couldn’t find constant name, class EMMUserBundleEntity
User.
Es posible que sea porque cree la base en postgress? Como podría configurar mi proyecto para que tome la base postgress en vez de mysql?
Muchas gracias!
Hola Sabrina, debes cambiar el driver en el archivo parameters.yml, obviamente debes ya tener instalado PostgreSQL y nada mas, lo demás lo hace Doctrine, acá te paso este enlace por si te puede ser útil http://stackoverflow.com/questions/10588646/how-to-change-a-database-to-postgresql-with-symfony-2-0
muchisimas gracias Edson. Quiero que sepas que gracias a ti estoy ascendiendo en mi trabajo (ya que usan el framework Symfony). Saludos!
De nada Sabrina, para mi es grato saber esa noticia, felicidades!
Hola! Muchisimas gracias por el tutorial.
Ajunto el inconveniente que estoy teniendo en este video, en el config me aparece esto, yo ya lo definí en el php.ini pero al reiniciar el apache (por las dudas) y refrescar el config, me sigue apareciendo la misma pantalla.
Saludos. https://uploads.disquscdn.com/images/573ad42353873f355ccda84685b3535b1d202d3bef60326360d44f5c8a780ab2.png https://uploads.disquscdn.com/images/f38a3cf6fa364ecf360fa0c95b4b53938eafdeb2f1868290105e6d70d6f0a13a.png
Quizá te falta configurar ese detalle en php.ini que te indica la página de Symfony que me muestras. Saludos.