class Console in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/sebastian/environment/src/Console.php \SebastianBergmann\Environment\Console
Hierarchy
- class \SebastianBergmann\Environment\Console
Expanded class hierarchy of Console
1 file declares its use of Console
- ResultPrinter.php in vendor/
phpunit/ phpunit/ src/ TextUI/ ResultPrinter.php
File
- vendor/
sebastian/ environment/ src/ Console.php, line 15
Namespace
SebastianBergmann\EnvironmentView source
class Console {
const STDIN = 0;
const STDOUT = 1;
const STDERR = 2;
/**
* Returns true if STDOUT supports colorization.
*
* This code has been copied and adapted from
* Symfony\Component\Console\Output\OutputStream.
*
* @return bool
*/
public function hasColorSupport() {
if (DIRECTORY_SEPARATOR == '\\') {
return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
}
if (!defined('STDOUT')) {
return false;
}
return $this
->isInteractive(STDOUT);
}
/**
* Returns the number of columns of the terminal.
*
* @return int
*/
public function getNumberOfColumns() {
// Windows terminals have a fixed size of 80
// but one column is used for the cursor.
if (DIRECTORY_SEPARATOR == '\\') {
return 79;
}
if (!$this
->isInteractive(self::STDIN)) {
return 80;
}
if (preg_match('#\\d+ (\\d+)#', shell_exec('stty size'), $match) === 1) {
return (int) $match[1];
}
if (preg_match('#columns = (\\d+);#', shell_exec('stty'), $match) === 1) {
return (int) $match[1];
}
return 80;
}
/**
* Returns if the file descriptor is an interactive terminal or not.
*
* @param int|resource $fileDescriptor
*
* @return bool
*/
public function isInteractive($fileDescriptor = self::STDOUT) {
return function_exists('posix_isatty') && @posix_isatty($fileDescriptor);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Console:: |
public | function | Returns the number of columns of the terminal. | |
Console:: |
public | function | Returns true if STDOUT supports colorization. | |
Console:: |
public | function | Returns if the file descriptor is an interactive terminal or not. | |
Console:: |
constant | |||
Console:: |
constant | |||
Console:: |
constant |