Un vistazo a Doctrine 2
Doctrine es un ORM que cada vez estamos usando más y más aquellos 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. Una actualización del ORM que, entre otras cosas, 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 que su uso sea mucho más ágil.
Jonathan Wage, impartió en febrero de este año durante la conferencia Symfony Live 2010 una interesante charla en la que dio a conocer 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 flujo de trabajo. 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 duplican los datos de su anterior versión y las consultas se ejecutan en un tiempo mucho menor. Además, se incluye OOP, nuevas queries e implementaciones que ayudan a 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 considerablemente respecto a Doctrine 1; tanto en relación con la API como a su estructura, incorporándose además en PHP 5.3.
Aspectos a tener en cuenta
Otros elementos a considerar en lo que se refiere 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 fuese 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 de Doctrine.