Contenedor de aplicaciones PHP persistente, modular y auditable
p8pb (versión 0.4.0-alpha-zeus) es un contenedor de aplicaciones PHP diseñado para optimizar el rendimiento, permitir una arquitectura modular y garantizar seguridad mediante sandboxing. Desarrollado por Benjamín Sánchez Cárdenas, está orientado a entornos de desarrollo y producción, especialmente para aplicaciones legacy como WordPress.
Elimina la sobrecarga de reiniciar el intérprete PHP por cada request, mejorando significativamente el rendimiento y reduciendo la latencia. Ideal para aplicaciones con alta carga de tráfico o procesos intensivos.
Los módulos se distribuyen en formato .p8mod (ZIP con manifiesto), facilitando su instalación, actualización y distribución de manera aislada.
Aislamiento de cada solicitud para evitar contaminación de variables globales. Esencial para aplicaciones legacy que dependen de estados globales, como WordPress.
Comandos disponibles para gestionar el contenedor:
status: Muestra información del runtime y módulos activos.deploy: Despliega un nuevo módulo.list: Lista los módulos desplegados.Registro de eventos en formato estructurado para facilitar la auditoría y depuración.
Eventos como onActivate y onDeactivate permiten ejecutar lógica específica durante el ciclo de vida del módulo.
| Ventaja | Descripción |
|---|---|
| Alto Rendimiento | Reduce la latencia al evitar reinicios del intérprete PHP por cada request. |
| Modularidad | Permite agregar, actualizar o eliminar funcionalidades sin afectar el núcleo de la aplicación. |
| Seguridad | El sandboxing evita conflictos entre requests y protege el estado global. |
| Auditoría y Logging | Facilita el seguimiento de eventos y la depuración de errores con logs estructurados. |
| Compatibilidad con Legacy | Diseñado para funcionar con aplicaciones existentes como WordPress. |
| Despliegue Sencillo | Los módulos se despliegan como archivos .p8mod, simplificando la distribución. |
Mejora el rendimiento de aplicaciones como WordPress o Laravel al evitar reinicios del intérprete, reduciendo el consumo de recursos.
Crea módulos independientes para funcionalidades específicas (ej.: autenticación, APIs), resultando en un código más organizado y reusable.
Prueba módulos de forma aislada sin afectar el entorno principal, reduciendo errores en producción.
Úsalo como backend para aplicaciones frontend (React, Vue) o microservicios, logrando una arquitectura escalable y flexible.
hello.p8modhello/ ├── p8manifest.json # Metadatos y configuración de sandboxing ├── bootstrap.php # Lógica de inicialización └── handler.php # Manejador de solicitudes HTTP
El módulo demuestra el sandboxing con un contador global que se reinicia en cada request:
{
"message": "Hola desde p8pb!",
"counter": 1, // Siempre 1 gracias al sandboxing
"module": "hello",
"sandboxing": "activo"
}
zip, json, sockets./vendor/bin/rr serve -c config/roadrunner.yaml
Endpoint de prueba: http://localhost:8080/status
p8pb es una herramienta poderosa para desarrolladores que buscan:
Ideal para proyectos que requieren alto rendimiento, escalabilidad y compatibilidad con código legacy.
¿Te gustaría profundizar en alguna funcionalidad o explorar cómo implementar un módulo personalizado?
Contáctame por correo electrónico