getTerminalDimensions() public method

Tries to figure out the terminal dimensions based on the current environment.
Deprecation: since version 3.2, to be removed in 4.0. Create a Terminal instance instead.
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;
 }
Example #3
0
 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));
 }
Example #4
0
 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());
 }
Example #5
0
 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;
 }
Example #7
0
 /**
  * {@inheritdoc}
  */
 protected function getDefaultTerminalDimensions()
 {
     $application = new Application();
     list($width, $height) = $application->getTerminalDimensions();
     return new Rectangle($width ?: 80, $height ?: 20);
 }