`@echo` is invalid PHP syntax — echo is a language construct,
not a function, so the @ operator cannot be applied to it. This
causes a parse error on some PHP versions/runtimes.
The recursion guard ($in_log) added in 1.1.7 already prevents
infinite loops when STDOUT/STDERR is broken, so @ suppression
is unnecessary. Remove @ from echo, fwrite, and fflush calls.
Version bumped from 1.1.8 to 1.1.9.
- Add PHP 8.2/8.3/8.4/8.5 to version constraint
- Bump php-cs-fixer from ^3.2 to ^3.64
- Bump phpstan from ^1.1 to ^1.12
- Drop phpunit ^8.5 (EOL), keep ^9.0 only
When the terminal (IDE) is closed without stopping the framework first,
the PTY is destroyed and STDOUT/STDERR become broken file descriptors.
Any subsequent log call via echo/fwrite fails with E_WARNING, the error
handler catches it and calls the logger again, creating a recursive loop
that consumes 100% CPU.
Changes:
- Add static $in_log recursion guard flag to ConsoleLogger
- Wrap log output (echo/fwrite/fflush) with the guard and @ suppression
- Bump version from 1.1.6 to 1.1.7