1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81:
<?php
/**
* Cz CLI Console
* @author Jan Pecha, <janpecha@email.cz>
*/
namespace Cz\Cli\Outputs;
use Cz\Cli\IOutputProvider;
abstract class BaseOutput implements IOutputProvider
{
/** @var bool */
protected $newLineEnabled = TRUE;
/** @var string */
protected $newLineCharacter = "\n";
public function __construct()
{
// set default NL character, for WIN platform is used \r\n
if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
$this->newLineCharacter = "\r\n";
}
}
/**
* @param string|string[]
* @return self
*/
public function output($str)
{
if (!is_array($str))
{
$str = func_get_args();
}
echo implode('', $str);
return $this->nl();
}
public function nl()
{
if($this->newLineEnabled)
{
$this->printNL();
}
return $this;
}
public function setAutoNewLine($state)
{
$this->newLineEnabled = (bool) $state;
return $this;
}
public function getAutoNewLine()
{
return $this->newLineEnabled;
}
protected function printNL()
{
echo $this->newLineCharacter;
}
}