Tries to figure out the terminal dimensions based on the current environment.
public getTerminalDimensions ( ) : array | ||
return | array | Array containing width and height |
/** * ConsoleApplication constructor. * * ><p>**Note:** you'll have to configure the IO channels (ex. calling {@see setupStandardIO}) before running the * application. * * @param ConsoleIO $io * @param ConsoleSettings $settings * @param SymfonyConsole $console * @param InjectorInterface $injector */ function __construct(ConsoleIO $io, ConsoleSettings $settings, SymfonyConsole $console, InjectorInterface $injector) { $this->io = $io; $this->console = $console; $this->injector = $injector; $this->settings = $settings; $console->setAutoExit(false); $io->terminalSize($console->getTerminalDimensions()); }
/** * Returns the terminal width. * * @return int */ private function getTerminalWidth() { $application = new Application(); $terminalDimensions = $application->getTerminalDimensions(); $width = 120; if (isset($terminalDimensions[0])) { $width = $terminalDimensions[0]; } return $width; }
public function table(array $headers, array $rows) { $application = new Application(); $dimensions = $application->getTerminalDimensions(); $terminalWidth = $dimensions[0] ?: self::MAX_LINE_LENGTH; $maxHeaderWidth = strlen($headers[0]); foreach ($rows as $row) { $length = strlen($row[0]); if ($maxHeaderWidth === null || $length > $maxHeaderWidth) { $maxHeaderWidth = $length; } } $wrap = function ($rows) use($terminalWidth, $maxHeaderWidth) { return array_map(function ($row) use($terminalWidth, $maxHeaderWidth) { return array_map(function ($s) use($terminalWidth, $maxHeaderWidth) { if ($terminalWidth > $maxHeaderWidth + 5) { return wordwrap($s, $terminalWidth - $maxHeaderWidth - 5, "\n", true); } return $s; }, $row); }, $rows); }; parent::table($headers, $wrap($rows)); }
public function testTerminalDimensions() { $application = new Application(); $originalDimensions = $application->getTerminalDimensions(); $this->assertCount(2, $originalDimensions); $width = 80; if ($originalDimensions[0] == $width) { $width = 100; } $application->setTerminalDimensions($width, 80); $this->assertSame(array($width, 80), $application->getTerminalDimensions()); }
private function getTerminalWidth() { $application = new Application(); $dimensions = $application->getTerminalDimensions(); return $dimensions[0] ?: self::MAX_LINE_LENGTH; }
/** * @param int $default * * @return int */ protected function getTerminalWidth($default = 80) { static $dimensions; if (!$dimensions) { $application = new ConsoleApplication(); $dimensions = $application->getTerminalDimensions(); } return $dimensions[0] ?: $default; }
/** * {@inheritdoc} */ protected function getDefaultTerminalDimensions() { $application = new Application(); list($width, $height) = $application->getTerminalDimensions(); return new Rectangle($width ?: 80, $height ?: 20); }