GitHub - soloterm/screen: A terminal renderer written in pure PHP. Complete
A terminal renderer written in pure PHP. Contribute to soloterm/screen development by creating an account on GitHub.
Extended Summary
Resumen Principal
Solo Screen (o simplemente Screen) es una innovadora biblioteca de PHP puro diseñada para funcionar como un renderizador de terminal, una pieza fundamental para la creación de sofisticadas interfaces de usuario de texto (TUI). A diferencia de un emulador de terminal completo, Screen se concentra exclusivamente en interpretar y renderizar con precisión el texto y las secuencias de escape ANSI para generar una representación virtual de la salida de la terminal. Su propósito principal es permitir a los desarrolladores de PHP construir TUIs ricas y controladas sin depender de dependencias externas o código nativo. Originalmente concebida para resolver el desafío de contener las operaciones ANSI dentro de paneles visuales en Solo for Laravel, la biblioteca crea un búfer de terminal virtual aislado. En este entorno, todas las operaciones ANSI (movimientos de cursor, cambios de color, limpieza de pantalla) se interpretan de forma segura, capturando el estado final renderizado y mostrando solo la salida visual consolidada, lo que garantiza una contención y control absolutos sobre la presentación en la terminal.
Elementos Clave
- Naturaleza del Renderizador de Terminal: Screen funciona como un renderizador, que procesa texto y secuencias de escape ANSI para generar una representación virtual de la salida de la terminal. A diferencia de un emulador completo, se centra en la interpretación y renderizado correctos del contenido y formato, manejando aspectos como la posición del cursor, colores de texto, estilos y gestión de contenido de pantalla para producir una salida final.
- Solución Innovadora a la Contención ANSI: La razón de ser de Screen radica en su capacidad para resolver el problema de que los procesos con códigos ANSI "escapen" de sus contenedores visuales. Lo logra mediante la creación de un búfer de terminal virtual aislado, donde todas las operaciones ANSI se interpretan de forma segura. Esto permite capturar el estado renderizado final y mostrar solo la salida visual precisa, asegurando que las operaciones complejas de ANSI permanezcan estrictamente dentro de sus áreas designadas.
- Implementación Pura en PHP y Soporte Integral: La biblioteca destaca por su implementación en PHP puro, con una única dependencia (Grapheme). Ofrece un soporte ANSI exhaustivo, cubriendo movimientos de cursor, estilos de texto (negrita, subrayado, 256 colores, RGB) y manipulación de pantalla. Además, incluye soporte completo para Unicode/Multibyte (incluyendo emojis y caracteres de ancho doble) y una sofisticada gestión de búferes con PrintableBuffer para caracteres visibles y AnsiBuffer para información de estilo.
- **Capacidades Avanzadas de