Viernes, 13 de mayo de 2011
Propel es el ORM favorito de una gran parte de la comunidad de programadores Symfony. Hace unos años era el mejor ORM y el más utilizado. Tras un largo período de inactividad, Doctrine se convirtió en el ORM más popular y ahora Propel intenta recuperar lo perdido.
Para ello se acaba de publicar la versión estable de Propel 1.6, la última que se publicará de la rama 1.X. A pesar de que la lista de novedades de Propel 1.6 es casi inacabable, esta nueva versión es completamente retrocompatible con las versiones 1.4 y 1.5.
Las principales novedades de Propel 1.6 son las siguientes:
- Migraciones. Si añades o eliminas tablas y columnas en tu base de datos, Propel se encargará de hacer los cambios necesarios para que la aplicación siga funcionando bien y sin perder información.
- Nuevos comportamientos. Doctrine2 ha eliminado todos los comportamientos, pero Propel cada vez tiene más. Los últimos son Versionable (que permite guardar una versión para cada cambio en un objeto) y i18n (para hacer aplicaciones multi-idioma sin depender de lo que ofrezca cada framework).
- Importación y exportación de información en los formatos XML, YAML, JSON y CSV.
- Tipos de columna avanzados. Se han añadido los tipos enum, array y object.
Puedes ver otras novedades destacadas en el post del blog oficial de Propel y en la extensa documentación oficial de Propel 1.6.
Si programas aplicaciones con symfony 1.4, ya puedes utilizar Propel 1.6 mediante el plugin sfPropel15Plugin (que no te confunda el nombre, porque este el plugin bueno para utilizar Propel 1.6). Si programas con Symfony2, debes utilizar el bundle PropelBundle.
Por otra parte, el desarrollo de Propel 2 ya ha comenzado y puedes seguir su evolución mediante su repositorio oficial en github: https://github.com/fzaninotto/Propel2
Fuente: Propel 1.6 is Released
Guardado en propel, symfony, symfony2
4 comentarios »
Jueves, 20 de enero de 2011
Propel, el ORM favorito de muchos symfoneros, acaba de publicar la primera beta de su próxima versión 1.6. Después de varios meses de desarrollo, la lista de novedades que incorpora es impresionante:
Como siempre que se trata de Propel, la calidad del trabajo realizado es altísima: todas las nuevas características son retrocompatibles, incluyen tests unitarios y están completamente documentadas.
Para utilizar Propel 1.6 en tus aplicaciones Symfony, debes hacer uso del plugin sfPropel15Plugin. Puedes leer la guía de instalación de sfPropel15Plugin en el propio repositorio de Propel.
Fuente: Get Ready For Propel 1.6: The Beta 1 Is Released.
Guardado en propel, symfony
3 comentarios »
Viernes, 17 de septiembre de 2010
La semana pasada se celebró una reunión online a través del IRC para decidir el futuro de Propel 2.0. François Zaninotto, el actual responsable de Propel, ya había anunciado previamente que el no tenía tiempo para liderar el desarrollo de Propel 2.0. Muchos temieron entonces que la reunión sólo serviría para anunciar el fin de Propel.
Nada más lejos de la realidad: Propel seguirá vivo y dando que hablar en el mundo de los ORM por mucho tiempo. Para sorpresa de todos, en la reunión se anunció que Propel 2 será una capa por encima de Doctrine 2.
Como ya sabes, Doctrine 2 está formado por dos partes:
- DBAL: una capa que abstrae todas las operaciones de bajo nivel sobre las bases de datos. Esta capa es la encargada de convertir las operaciones sobre datos en sentencias SQL especialmente adaptadas a la base de datos utilizada.
- ORM: esta capa es la que permite manipular la información de la base de datos mediante objetos. Esta parte de Doctrine es la más conocida y utilizada por los programadores. En Symfony esta parte es la que tiene relación con el esquema, las entidades, las consultas y el lenguaje DQL.
Propel 2 utilizará toda la capa DBAL y partes de la capa ORM de Doctrine 2 para su funcionamiento interno. Externamente Propel continuará utilizando el patrón ActiveRecord, lo que significa que va a ser muy parecido a Propel 1 y por tanto, muy diferente a Doctrine. Simplificándolo mucho, Propel 2 será Doctrine por dentro y Propel 1 por fuera.
Por otra parte, Propel 2 requerirá PHP 5.3, será compatible con Propel 1 en todo lo posible, su código se pasa a Github y el gran François Zaninotto ha decidido finalmente liderar el proyecto. Si quieres conocer todos los detalles, puedes leer el log de toda la reunión del IRC y también puedes seguir a François Zaninotto en Github para enterarte de todo el código nuevo que se publique.
Fuente: Propel2 Will Be an ActiveRecord Implementation Based On Doctrine2
Guardado en doctrine, propel, symfony
2 comentarios »
Miércoles, 23 de junio de 2010
Acaba de concluir la repetición de la conferencia online “State of Symfony2″ y ya se empiezan a publicar las presentaciones para todos los que no han podido asistir.
Guardado en conferencia, doctrine, propel, symfony2
4 comentarios »
Martes, 22 de junio de 2010
Hace unos minutos ha concluido la primera conferencia online sobre Symfony2. Todas las sesiones han tenido un nivel muy notable y a continuación os mostramos lo más destacado de cada una de ellas:
- News of the Symfony2 world (Fabien Potencier):
- Ha sido la sesión más floja, ya que simplemente ha recapitulado las últimas noticias relacionadas con Symfony2.
- Se ha centrado especialmente en los componentes más recientes (CssSelector, DomCrawler, Browser, Finder).
- Symfony2 meets Propel 1.5 (François Zaninotto):
- En primer lugar se han mostrado las últimas novedades de Propel 1.5. François ha aprovechado para darle un buen repaso a Doctrine y ha demostrado que Propel, lejos de estar muerto, está más vivo que nunca.
- François recalca que las mejores características de Propel son las Model Queries, la Concrete Table Inheritance y el aggregate_column behavior.
- Respecto a la integración de Propel con Symfony2, va por buen camino pero faltan todavía muchas cosas por hacer: definir esquemas en YAML, integración con la barra de depuración web, integración con los formularios y con el admin generator.
- Principales razones para utilizar Propel en vez de Doctrine 2: es rápido, sigue el patrón ActiveRecord y ya está disponible de forma estable.
- Symfony and Doctrine (Jonathan Wage):
- Jonathan apenas ha mencionado a Propel, salvo para decir que la filosofía de Doctrine es completamente diferente al ActiveRecord y que eso está bien porque en su opinión “ActiveRecord is flawed”.
- La parte del ORM ya no tiene código mágico, todo es explícito.
- Se ha presentado el bundle de Doctrine para MongoDB y la gran similitud entre el ODM y el ORM. Esto facilitará la transición del SQL a filosofías NoSQL.
- La otra gran novedad de Doctrine 2 será la completa renovación de las migraciones (totalmente integradas en Symfony mediante el DoctrineMigrationsBundle).
- Unit & Functional Tets (Fabien Potencier):
- Fabien cree que utilizar herramientas estándar es lo correcto, por lo que Symfony utilizará a partir de ahora PHPUnit
- A continuación ha hablado de buenas prácticas para las pruebas y ha concluido con las pruebas funcionales.
- Symfony2 podrá lanzar pruebas en paralelo gracias al componente que permite crear forked PHP processes.
- A Fabien le han vuelto a preguntar por Sismo, el servidor de integración continua que utiliza Symfony y que ha creado el propio Fabien. Harto de que la gente no sea capaz de entender la frase “no hay fecha prevista para publicar Sismo como software libre”, Fabien ha dicho que “deberíamos hacer como si Sismo no existiera”.
- The new form framework (Bernhard Schussek):
- El componente de los formularios ha sido completamente rediseñado para que sea simple y fácilmente reutilizable.
- Nuevos widgets (que ahora parece que se llaman fields): BirthdayField, PercentField, NumberField, IntegerField. Widgets especiales: RepeatedField, CollectionField, FieldGroup.
- Personalmente el nuevo componente de formularios no me parece mucho más sencillo que el que existe actualmente.
- Caching on the edge (Fabien Potencier):
- La conferencia ha concluido con la presentación de la verdadera killer feature de Symfony 2: un sistema de caché parecido a Varnish pero desarrollado con PHP.
- En pocas palabras: Symfony2 incluye un sistema de cache que puede almacenar páginas enteras, de forma que tus aplicaciones tengan un rendimiento estratosférico.
- Si utilizaste el plugin sfSuperCachePlugin en Symfony 1.X, esta nueva cache es como una versión infinitamente mejorada de ese plugin.
- En aplicaciones sencillas, con 10 usuarios concurrentes Symfony2 es 5 veces más rápido que Symfony 1; con 100 usuarios concurrentes, Symfony2 es 11 veces más rápido que Symfony 1.
- En aplicaciones complejas, con 10 usuarios concurrentes Symfony2 es 8 veces más rápido que Symfony 1; con 100 usuarios concurrentes, Symfony2 es 85 veces más rápido que Symfony 1.
- Symfony2 ha sido diseñado desde el primer día para hacer uso de esta característica. Toda su arquitectura interna se ha diseñado para hacer posible esta super cache.
- La clave es que Symfony2 incluye un acelerador HTTP programado en PHP. Se encarga de la expiración y validación de la caché HTTP.
- Symfony2 soporta el uso de ESI o Edge Side Includes y otras muchas ideas y tecnologías definidas en el estándar HTTP Bis.
Otros anuncios importantes de la conferencia han sido los siguientes:
- Van a intentar desarrollar una herramienta para actualizar las aplicaciones symfony 1.X a Symfony2. Todavía están pensando en cómo hacerlo (incluso se habla de una capa de emulación de Symfony 1.X ejecutada sobre Symfony2). Puede que incluso no sea posible hacerlo y no exista tal herramienta de actualización.
- Si vas a desarrollar un sitio web que debe estar en producción en los próximos meses, olvídate de Symfony2.
- La primera versión alpha de Symfony2 estará disponible seguramente en Septiembre.
- La nueva documentación de Symfony2 se publicará el miércoles por la tarde o el jueves por la mañana.
Symfony2 cada día está más cerca y continúa añadiendo componentes que lo convierten en el mejor framework PHP para aplicaciones profesionales. Si quieres conocer más características, recuerda que las próximas Jornadas Symfony en Castellón incluirán una sesión dedicada a Symfony2.
Guardado en conferencia, doctrine, propel, symfony2
4 comentarios »