LARAVEL Y FRANKENPHP: EL CAMBIO DE PARADIGMA QUE ESTÁ REVOLUCIONANDO EL DESARROLLO PHP

Durante años se ha desarrollado en PHP bajo un modelo muy concreto: cada petición HTTP es un ciclo completo que nace y muere. El kernel se inicializa, se crean los servicios, se ejecuta el código y todo se destruye al final de la respuesta. Funciona, pero tiene un coste. FrankenPHP cambia radicalmente esta realidad al introducir procesos persistentes. Y cuando se combina con Symfony, surge una nueva forma de construir aplicaciones mucho más potentes y eficientes.

Antes vs Ahora

Antes con el modelo tradicional con PHP-FPM:
  • Cada petición HTTP comenzaba desde cero.
  • Laravel arrancaba y cargaba toda su configuración en cada request..
  • Se cargaban Service, Providers, configuraciones, etc.
  • Se ejecutaba el código.
  • Todo se destruía al finalizar la respuesta.

Ahora Procesos persistentes con FrankenPHP y Octane:

  • La aplicación ya está inicializada y en memoria.
  • Los servicios y contenedores permanecen vivos.
  • E código se ejecuta directamente.
  • El proceso y el estado de la aplicación persiste entre peticiones.
Esto representa un salto enorme en rendimiento, pero también trae consigo nuevas responsabilidades.

¿Por qué este cambio es tan importante?

En un entorno de procesos persistentes, el estado ya no se reinicia automáticamente en cada petición. Esto significa que:
  • El estado puede filtrarse entre peticiones si no se controla.
  • Cachés internas, propiedades estáticas, singletons y variables globales permanecen vivos.
  • Lo que antes era inofensivo, ahora puede convertirse en un bug difícil de detectar.
Por eso, Laravel Octane está preparado para gestionar este nuevo escenario.

Laravel Octane preparado para procesos persistentes

Laravel Octane se encarga automáticamente de resetear gran parte del estado interno del framework Laravel entre peticiones. Sin embargo, el desarrollador sigue siendo responsable de su propio estado.

Buenas prácticas

  • Evitar el uso de variables estáticas dentro de clases y métodos.
  • No guardar el estado en propiedades de controladores o servicios sin limpiarlos.
  • Usar los hooks de ciclo de vida de Laravel Octane para resetear lo necesario.
  • Es mejor usar servicios pequeños, inmutables y sin efectos secundarios.

¿Qué ganamos con FrankenPHP y Laravel Octane?

  • Más rendimiento
  • Menor consumo de memoria
  • Menos bugs intermitentes
  • Código más mantenible
  • Aplicaciones de mayor calidad