Egorka
6 years ago
2 changed files with 131 additions and 1 deletions
@ -0,0 +1,129 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* Created by Error202 |
||||||
|
* Date: 14.09.2018 |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace console\components; |
||||||
|
|
||||||
|
class ConsoleColor |
||||||
|
{ |
||||||
|
public static $foreground_colors = [ |
||||||
|
'bold' => '1', |
||||||
|
'dim' => '2', |
||||||
|
'black' => '0;30', |
||||||
|
'dark_gray' => '1;30', |
||||||
|
'blue' => '0;34', |
||||||
|
'light_blue' => '1;34', |
||||||
|
'green' => '0;32', |
||||||
|
'light_green' => '1;32', |
||||||
|
'cyan' => '0;36', |
||||||
|
'light_cyan' => '1;36', |
||||||
|
'red' => '0;31', |
||||||
|
'light_red' => '1;31', |
||||||
|
'purple' => '0;35', |
||||||
|
'light_purple' => '1;35', |
||||||
|
'brown' => '0;33', |
||||||
|
'yellow' => '1;33', |
||||||
|
'light_gray' => '0;37', |
||||||
|
'white' => '1;37', |
||||||
|
'normal' => '0;39', |
||||||
|
]; |
||||||
|
|
||||||
|
public static $background_colors = [ |
||||||
|
'black' => '40', |
||||||
|
'red' => '41', |
||||||
|
'green' => '42', |
||||||
|
'yellow' => '43', |
||||||
|
'blue' => '44', |
||||||
|
'magenta' => '45', |
||||||
|
'cyan' => '46', |
||||||
|
'light_gray' => '47', |
||||||
|
]; |
||||||
|
|
||||||
|
public static $options = [ |
||||||
|
'underline' => '4', |
||||||
|
'blink' => '5', |
||||||
|
'reverse' => '7', |
||||||
|
'hidden' => '8', |
||||||
|
]; |
||||||
|
public static $EOF = "\n"; |
||||||
|
|
||||||
|
/** |
||||||
|
* Logs a string to console. |
||||||
|
* |
||||||
|
* @param string $str Input String |
||||||
|
* @param string $color Text Color |
||||||
|
* @param boolean $newline Append EOF? |
||||||
|
* @param [type] $background Background Color |
||||||
|
* |
||||||
|
* Formatted output |
||||||
|
*/ |
||||||
|
public static function log($str = '', $color = 'normal', $newline = false, $background_color = null) |
||||||
|
{ |
||||||
|
if (is_bool($color)) { |
||||||
|
$newline = $color; |
||||||
|
$color = 'normal'; |
||||||
|
} elseif (is_string($color) && is_string($newline)) { |
||||||
|
$background_color = $newline; |
||||||
|
$newline = true; |
||||||
|
} |
||||||
|
$str = $newline ? $str . self::$EOF : $str; |
||||||
|
echo self::$color($str, $background_color); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Anything below this point (and its related variables): |
||||||
|
* Colored CLI Output is: (C) Jesse Donat |
||||||
|
* https://gist.github.com/donatj/1315354 |
||||||
|
* ------------------------------------------------------------- |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* Catches static calls (Wildcard) |
||||||
|
* |
||||||
|
* @param string $foreground_color Text Color |
||||||
|
* @param array $args Options |
||||||
|
* |
||||||
|
* @return string Colored string |
||||||
|
*/ |
||||||
|
public static function __callStatic($foreground_color, $args) |
||||||
|
{ |
||||||
|
$string = $args[0]; |
||||||
|
$colored_string = ''; |
||||||
|
|
||||||
|
// Check if given foreground color found |
||||||
|
if (isset(self::$foreground_colors[$foreground_color])) { |
||||||
|
$colored_string .= "\033[" . self::$foreground_colors[$foreground_color] . 'm'; |
||||||
|
} else { |
||||||
|
die($foreground_color . ' not a valid color'); |
||||||
|
} |
||||||
|
|
||||||
|
array_shift($args); |
||||||
|
foreach ($args as $option) { |
||||||
|
// Check if given background color found |
||||||
|
if (isset(self::$background_colors[$option])) { |
||||||
|
$colored_string .= "\033[" . self::$background_colors[$option] . 'm'; |
||||||
|
} elseif (isset(self::$options[$option])) { |
||||||
|
$colored_string .= "\033[" . self::$options[$option] . 'm'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Add string and end coloring |
||||||
|
$colored_string .= $string . "\033[0m"; |
||||||
|
|
||||||
|
return $colored_string; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Plays a bell sound in console (if available) |
||||||
|
* |
||||||
|
* @param integer $count Bell play count |
||||||
|
* |
||||||
|
* Bell play string |
||||||
|
*/ |
||||||
|
public static function bell($count = 1) |
||||||
|
{ |
||||||
|
echo str_repeat("\007", $count); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue