944 063 154

Blog

Un vistazo a Doctrine 2

Publicado enDesarrollo y Programación

Doctrine es un ORM que cada vez estamos usando más los que trabajamos con el framework Symfony para PHP. En los últimos días, se ha publicado Doctrine 2, la nueva versión del modelo de programación que permite transformar las tablas de las bases de datos.

Esta nueva versión de Doctrine está reescrita por completo en PHP 5.3. Esto permite mejorar su rendimiento de una forma notable y haciendo mucho más ágil su uso.

Jonathan Wage, impartió en Febrero de este año durante la conferencia Symfony Live 2010 una interesante charla presentando algunas de las novedades más interesantes que se recogen en esta nueva versión.

Las principales novedades de Doctrine 2

Doctrine 2 da la vuelta a su código, a los conceptos y también incorpora un nuevo workflow. Aunque tanto cambio pueda asustar en un principio, en esta ocasión solo trae cosas buenas. Y es que todos los cambios provienen de lo aprendido de Doctrine 1, por lo que la mejora del ORM es más que notable.

Por ejemplo, con Doctrine 2 se suplican los datos de su anterior versión y las consultan se ejecutan en un menor tiempo. Además, se incluye OOP,  nuevas queries e implementaciones que agilizar el cacheo de los resultados.

Para su desarrollo se ha utilizado PHP Unit 3.4.10, componentes Symfony YAML, Sismo o Subversion. Aunque todas estas incorporaciones han provocado cambios en la arquitectura, ahora será mucho más sencillo. Esto se debe a que, entre otras cosas, ya no habrá imposiciones del modelo de dominio.

Asimismo, es posible utilizar los sistemas de gestión de bases de datos (DBMS) a través de Sqlite, MySQL, Oracle o PgSQL. En la misma línea, la capa de abstracción de la base de datos ha mejorado considerablmente respecto a Doctrine 1; tanto en relación a la API como a su estructura, incorporándose además en PHP 5.3.

Aspectos a tener en cuenta

Otros elementos a considerar en relación a Doctrine 2 son:

  • El modelo de dominio no viene impuesto por Doctrine, sino que está definido en PHP. Esto supone una mejora notable.
  • Mayor facilidad para entender lo que está pasando en la aplicación, en vez de dejar que la ‘magia’ de Doctrine 1 ocurra.
  • Las entidades no requieren de la extensión de la clase base.
  • Aunque realices múltiples transacciones se ejecutarán como si fuse una. Así, los tiempos respecto a PHP se reducen, ya que aquí las transacciones se efectúan individualmente.

Si quieres saber más acerca de Doctrine 2, Jonathan Wage ha publicado un documento con los cambios más significativos de la nueva versión e Doctrine.