Resumen de la conferencia "State of Symfony2"

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.

Comentarios

  1. Muy buen resumen. A mí me ha llamado la atención:

    • El énfasis que han puesto en la estandarización, tanto en el estilo de código como en conjugar symfony con el resto del mundo PHP. Por ejemplo, abandonar Lime para centrarse en PHPUnit, que tiene intergración con otras herramientas y es algo que programadores nuevos en symfony pueden conocer. También parece que han hecho hincapié en "reducir la magia", por ejemplo en Doctrine, porque luego es difícil encontrar errores y entender qué está pasando.

    • La charla de Propel me ha sorprendido mucho. Parece que François Zaninotto le ha puesto las pilas al proyecto. Ha hecho énfasis en la usabilidad (no de cara al usuario de la web, claro, es un ORM, sino al programador). Abandonan los criteria (aunque mantienen compatibilidad con versiones anteriores), y desnormalizan la base de datos por sistema. Por ejemplo, en una relación one-to-many el "one" almacena un contador del número de "many" que tiene.

    • La killer feature de la caché probablemente no sea "killer" para la mayoría de las webs (muchas páginas no tienen ningún problema de rendimiento porque simplemente no hay tantos usuarios), pero sí que trae beneficios indirectos. Si así se atrae a equipos de desarrolladores fuertes todos nos podremos beneficiar de lo que devuelvan a la comunidad en forma de plugins, documentación, desarrollo, etc.

    • Los formularios parece que tratan de mover el código de validación del formulario al modelo. Han hecho énfasis en los nuevos fields/widgets localizados. Personalmente me habría gustado ver más sobre formularios empotrados, formularios anidados (seleccionas un país y se cargan sus provincias en el siguiente selector, por ejemplo), o la posibilidad de trocear un formulario largo en pasos. Esto último quizá sea posible con la validación por fases de la que han hablado (?). No me ha quedado claro. Jonathan Wage se ha pasado luego por el IRC, y le he preguntado si tienen pensado algún sistema para enlazar de alguna forma los validadores de formularios con validadores javascript, pero dice que aún no lo tiene claro. En la charla posterior me ha dado la sensación de que les falta mucho desarrollo en formularios. Habrá que ver cómo redondean el subframework, porque en 1.x hay cosas que son una pesadilla.

    • Fabien ha dicho que nos olvidemos de Sismo.

    Nacho Martín el 22 de junio de 2010, 15:43:45

  2. ¿Sabéis si van a publicar las transparencias en algún sitio?

    No estaría mal para pegarle un repaso a esos trozos de código que han publicado esta mañana en la conferencia.

    Carlos Faria el 22 de junio de 2010, 17:07:17

  3. Nacho, muchas gracias por tu crónica. He aprovechado tus comentarios para actualizar la información sobre Sismo.

    Respecto a la super-cache, aunque los proyectos sean pequeños, puede que sus recursos técnicos sean limitados (por ejemplo en un servidor compartido) y por tanto podrían aprovecharse de esta enorme mejora del rendimiento.

    Me alegra saber que no soy el único al que el tema de los formularios le sigue sin convencer del todo ;)

    Javier Eguiluz el 22 de junio de 2010, 17:18:01

  4. Carlos, dicen que las colgarán seguramente el jueves.

    Nacho Martín el 22 de junio de 2010, 20:24:29

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

22 de junio de 2010

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.