Skip to content

Instantly share code, notes, and snippets.

@maxgalbu
Created June 28, 2017 12:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxgalbu/d1cf73398f40b0d796ec9a4001ebd3db to your computer and use it in GitHub Desktop.
Save maxgalbu/d1cf73398f40b0d796ec9a4001ebd3db to your computer and use it in GitHub Desktop.
<?php
namespace Vendor\CliOutput;
class CliOutput
{
const BLACK = 'black';
const DARK_GRAY = 'dark_gray';
const BLUE = 'blue';
const LIGHT_BLUE = 'light_blue';
const GREEN = 'green';
const LIGHT_GREEN = 'light_green';
const CYAN = 'cyan';
const LIGHT_CYAN = 'light_cyan';
const RED = 'red';
const LIGHT_RED = 'light_red';
const PURPLE = 'purple';
const LIGHT_PURPLE = 'light_purple';
const BROWN = 'brown';
const YELLOW = 'yellow';
const LIGHT_GRAY = 'light_gray';
const WHITE = 'white';
private $foreground_colors = array();
private $background_colors = array();
public function __construct() {
// Set up shell colors
$this->foreground_colors['black'] = '0;30';
$this->foreground_colors['dark_gray'] = '1;30';
$this->foreground_colors['blue'] = '0;34';
$this->foreground_colors['light_blue'] = '1;34';
$this->foreground_colors['green'] = '0;32';
$this->foreground_colors['light_green'] = '1;32';
$this->foreground_colors['cyan'] = '0;36';
$this->foreground_colors['light_cyan'] = '1;36';
$this->foreground_colors['red'] = '0;31';
$this->foreground_colors['light_red'] = '1;31';
$this->foreground_colors['purple'] = '0;35';
$this->foreground_colors['light_purple'] = '1;35';
$this->foreground_colors['brown'] = '0;33';
$this->foreground_colors['yellow'] = '1;33';
$this->foreground_colors['light_gray'] = '0;37';
$this->foreground_colors['white'] = '1;37';
$this->background_colors['black'] = '40';
$this->background_colors['red'] = '41';
$this->background_colors['green'] = '42';
$this->background_colors['yellow'] = '43';
$this->background_colors['blue'] = '44';
$this->background_colors['magenta'] = '45';
$this->background_colors['cyan'] = '46';
$this->background_colors['light_gray'] = '47';
}
// Returns colored string
public function getColoredString($string, $foreground_color = null, $background_color = null)
{
$colored_string = "";
// Check if given foreground color found
if (isset($this->foreground_colors[$foreground_color])) {
$colored_string .= "\033[" . $this->foreground_colors[$foreground_color] . "m";
}
// Check if given background color found
if (isset($this->background_colors[$background_color])) {
$colored_string .= "\033[" . $this->background_colors[$background_color] . "m";
}
// Add string and end coloring
$colored_string .= $string . "\033[0m";
return $colored_string;
}
// Returns all foreground color names
public function getForegroundColors()
{
return array_keys($this->foreground_colors);
}
// Returns all background color names
public function getBackgroundColors()
{
return array_keys($this->background_colors);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment