initialTtyMode ??= (shell_exec('stty -g') ?: null); shell_exec("stty $mode"); } /** * Restore the initial TTY mode. */ public function restoreTty(): void { if ($this->initialTtyMode) { shell_exec("stty {$this->initialTtyMode}"); $this->initialTtyMode = null; } } /** * Get the number of columns in the terminal. */ public function cols(): int { return $this->cols ??= (new SymfonyTerminal())->getWidth(); } /** * Get the number of lines in the terminal. */ public function lines(): int { return $this->lines ??= (new SymfonyTerminal())->getHeight(); } /** * Exit the interactive session. */ public function exit(): void { exit(1); } }