Symfony Barcelona: hablando de PHP 7 y PuliPHP

El pasado viernes 22 de mayo asistí, por primera vez, al evento que organizaba la comunidad local de Barcelona, Symfony Barcelona, organizado por Marc Morera. En esta ocasión los ponentes fueron Albert Casademont, que habló sobre la nueva versión de PHP 7, y Bernhard Schussek, que presentó su proyecto personal PuliPHP.

¡The Inbounder World Tour 2017 ha llegado! Cuatro ciudades han sido los escenarios elegidos en España, Europa y Estados Unidos. Tras el éxito de Madrid y Londres la nave The Inbounder llegará a Nueva York y Milán. Las entradas para Nueva York del próximo 22 de mayo ya están a la venta. ¡No te quedes en tierra! Sube a la nave #theInbounder

El evento tuvo lugar en el Grizzly 72 Sports Bar de Barcelona, un bar que acondicionan para poder acoger dichas charlas, aunque se está quedando pequeño para la inmensa comunidad de Symfony Barcelona.

Arrancamos con la breve presentación de Marc Morera agradeciendo, en primer lugar, la asistencia de todos los symfoneros (éramos alrededor de 120 personas), a los ponentes y a los patrocinadores. Nos comentó que están recopilando una lista de empresas que trabajen en Symfony en Barcelona para avisar de los distintos talleres y eventos que organicen, por si tienen interés en ellos (Si eres de Barcelona y trabajas en Symfony sería una buena idea que te apuntaras a la lista).


Ponencia "PHP7 in Symfony Apps" 

A continuación dio paso a Albert Casademont, desarrollador Symfony en Ulabox, que nos habló sobre las nuevas características que tendrá (o tiene ya) PHP 7. Comenzó su presentación comentando que a raíz de que Facebook comenzará a trabajar en HipHop Virtual Machine (HHVM), ya sea primero en su compilador (HipHop) y posteriormente en su maquina virtual HHVM, entrel os creadores y desarrolladores del lenguaje PHP comenzó a haber un pique entre la comunidad y Facebook por conseguir mejorar el rendimiento de las aplicaciones web en PHP.

Seguidamente comentó algunas de las nuevas características de los internals de PHP:

- Un cambio importante en la estructura de datos, lo cual generará que muchas extensiones no vayan a funcionar ya que tendrán que ser reescritas.

- Mejora en “Call Frame”.

- Nuevo gestor de memoria.

- Se introduce finalmente un AST.

- Array inmutables

PCRE with JIT.

Y muchas otras de las cuales puedes saber más entrando en los enlaces anteriores o visitando la presentación de Albert. Destacar, desde mi punto de vista, una de las características que se ha incluido y ha sido una de las más polémicas y controvertidas: la declaración de tipos en los valores devueltos por funciones y en los tipos de datos escalares.

Por último, y lo que más valor tiene, nos presentó una serie de benchmarks entre los que destacar los realizados sobre una aplicación real, la de Ulabox, comparando entre la versión 5.5, 5.6 y 5.7 de PHP y usando HHVM.

 

(Imagen: Speakerdeck)
 

En la gráfica se puede ver cómo mejorar increíblemente los tiempos de carga de la página usando PHP 7, pero por otro lado es igual de increíble ver lo bien que está optimizada la máquina virtual de Facebook para que tenga unos tiempos de carga muy cercanos a PHP7 pero un consumo de memoria asombrosamente bajo comparado con el resto.

Como conclusión de la charla de Albert me quedaría con un comentario que hizo: "Esta competición que hay entre los desarrolladores del lenguaje PHP y la gente de Facebook que desarrolla HHVM está haciendo que los desarrolladores de PHP dejemos de ser vistos como los lentos y comencemos a estar en otra liga, lo cual es genial para todos nosotros".
 

 Ponencia "Puli: PHP's Next Package Revolution"

Después de Albert fue el turno de Bernhard Schussek, desarrollador del core de Symfony desde 2009 y creador del componente de formularios, entre otros componentes, del core de Symfony con solo 27 años, además de ser el creador de PuliPHP tecnología/herramienta que presentó en el evento.

Comenzó recordando como en la comunidad PHP una de las claves del éxito es el reusar paquetes de altísima calidad que ya existen, consiguiendo así reducir el esfuerzo que hay que hacer a la hora de desarrollar nuestras aplicaciones. Planteó la idea o problema de cómo maximizar el conjunto de paquetes disponibles sin tener que hacer tantísimo esfuerzo en mantener las distintas extensiones para los distintos frameworks. Actualmente se está trabajando con bastante éxito en desacoplar las librerías de los framework como son las técnicas de DDD o las ideas que plantea Mattias Nobak en su libro Packagist. Pero hasta el momento no había ninguna solución que consiguiera desacoplar los recursos de nuestra aplicación (imágenes, ficheros de configuración, ficheros de traducción, etc.).

La primera definición que hubo vio la luz en junio de 2013, planteada en el PHP-FIG como PSR Resource Location. A partir de aquí Bernhard comienza a desarrollar Puli, hasta que en junio de 2014 saca la primera versión alpha de esta tecnología que resuelve este problema.

Puli está formado por tres componentes: repository, discovery y url generator, más una línea de comando que permite configurar el entorno de la aplicación. La idea es crear una capa software entre la aplicación y el gestor de paquetes, composer, que se encargue de la gestión de los recursos asumiendo las siguientes responsabilidades:

- La carga de los distintos recursos entre Packages.

- Generar las urls de los recursos públicos (css, imágenes o js).

- Conectar recursos entre consumidores y productores.

 

Así se explican, a grandes rasgos, los distintos componentes de Puli:

- Repository: Es el encargado de cargar y gestionar los distintos recursos entre paquetes y de realizar los mapeos entre las rutas internas y las rutas públicas de los recursos.

- URL Generator: Permite generar las urls públicas de los recursos de forma automática.

- Discovery: Gestiona la publicación, búsqueda y enlazado entre productores y consumidores de recursos.

Por último, Bernhard nos comenta cómo cree que será el futuro de “Packages”, que pasa por desacoplar los recursos de la aplicación. Puli ofrece herramientas para resolver esta problemática y él espera que se convierta en la próxima revolución como lo fue composer. Si quieres ver las slides de la presentación las encontraras aquí.

Y con esta última reflexión acabó el evento de Symfony Barcelona, saliendo de nuevo Marc y agradeciendo a todos la asistencia, incluida la de Bernhard y Albert. Un evento bastante completo y con un altísimo nivel. 

¡Esperemos que siga así o mejor!

 

 

¿Aún no te has suscrito a nuestra Newsletter?

¡Tenemos un montón de cosas que contarte! Actualidad, entrevistas, artículos de interés, herramientas imprescindibles, curiosidades… Todo, cada dos semanas en tu buzón.

amachado
amachado
28/05/2015

OMG

¿Aún no te has suscrito a nuestra Newsletter?

¡Tenemos un montón de cosas que contarte! Actualidad, entrevistas, artículos de interés, herramientas imprescindibles, curiosidades… Todo, cada dos semanas en tu buzón.