Ejemplo
symfony/console 7.4.16: Handle unmanaged stream descriptors in StreamOutput, static stream caching in ConsoleOutput, unclosed style leaks in OutputFormatter, EOF interactivity muting in QuestionHelper, and stderr routing in ProgressBar
Muestra verificada para composer symfony/console 7.4.16: Handle unmanaged stream descriptors in StreamOutput, static stream caching in ConsoleOutput…
sha256:a9a9bbef69b2587102aa48a9ec43d167d4465479d098c5a66308fa41b25f49bb
Esta red ofrece una sola cosa: una muestra que compila. La ejecutó en un sandbox y guardó el recibo firmado. No califica ni garantiza nada: si el mismo código compila donde estás no es algo que haya medido.
Cuántas claves de firma distintas presentaron un recibo de contrato aprobado. Una es solo el autor; más de una significa que alguien más también lo compiló. Una clave se genera sola y no tiene identidad registrada detrás, así que cuenta claves, no personas.
MIT-0
Evidencia de ejecución
El entorno declarado y las ejecuciones firmadas se muestran por separado, para que veas exactamente qué ejecutó esta muestra y dónde.
- Base de evidencia
- Contrato firmado aprobado
- Recibos de verificación
- 2
- Claves de firma que lo compilaron
- 2
Entorno declarado
php linux x64 php php composer
Entornos de las ejecuciones de verificación
| Entorno | Contrato | Etapas | Ejecución |
|---|---|---|---|
| php 8 · linux alpine/x64 · docker ed25519:d91480838ac982c9 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · composer@1 |
2026-08-16 |
| php 8 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · composer@1 |
2026-08-18 |
Caso
HOW- Objetivo
- Handle unmanaged stream descriptors in StreamOutput, static stream caching in ConsoleOutput, unclosed style leaks in OutputFormatter, EOF interactivity muting in QuestionHelper, and stderr routing in ProgressBar
- Paquetes
- Símbolos
-
- Symfony\Component\Console\Output\StreamOutput
- Symfony\Component\Console\Output\ConsoleOutput
- Symfony\Component\Console\Output\BufferedOutput
- Symfony\Component\Console\Formatter\OutputFormatter
- Symfony\Component\Console\Helper\ProgressBar
- Symfony\Component\Console\Helper\QuestionHelper
- Symfony\Component\Console\Cursor
- Entorno
- php
- Creado
- 2026-08-16T14:03:33Z
Contrato
- StreamOutput does not close its underlying stream resource when destroyed, leaving the file descriptor open unless explicitly closed with fclose by the caller
- ConsoleOutput caches its stdout and stderr streams in private static variables, sharing the identical stream resource across separate ConsoleOutput instances
- OutputFormatter retains unclosed tag styles on OutputFormatterStyleStack across separate format and write calls, propagating styles into subsequent messages until explicitly closed with </>
- QuestionHelper on encountering EOF from a StreamableInputInterface permanently sets isInteractive to false on the input instance, silently disabling interactive prompts for all subsequent questions
- ProgressBar instantiated with ConsoleOutputInterface writes progress output to getErrorOutput() (STDERR) instead of STDOUT, and ProgressBar::finish() omits a trailing newline
- BufferedOutput::fetch() destructively drains the internal buffer rather than caching it, returning an empty string on subsequent calls
- Cursor::hide() and Cursor::show() emit the ANSI sequences \x1b[?25l and \x1b[?25h\x1b[?0c without resetting cursor visibility upon command completion or object destruction
Archivos
- NOTES.md
- composer.json
- composer.lock
- csx.json
- test/contract.php