From d691a477318f854819ef133b85e57b863b9bc62b Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Thu, 8 Feb 2018 12:54:35 +0100 Subject: [PATCH] Output class added --- server/src/Output.php | 75 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 server/src/Output.php diff --git a/server/src/Output.php b/server/src/Output.php new file mode 100644 index 0000000..fd44e51 --- /dev/null +++ b/server/src/Output.php @@ -0,0 +1,75 @@ + + */ +class Output +{ + /** + * @var bool + */ + protected $isVerbose; + + /* + * Constructor. + * + * @param bool $isVerbose + */ + public function __construct(bool $isVerbose) + { + $this->isVerbose = $isVerbose; + } + /* + * Writes a message. + * + * @param string $message + * @param bool $isError + * + * @return Output + */ + public function write(string $message, $isError = false) + { + return $this->doWrite($message, false, $isError); + } + + /* + * Writes a message with new line. + * + * @param string $message + * @param bool $isError + * + * @return Output + */ + public function writeln(string $message, $isError = false) + { + return $this->doWrite($message, true, $isError); + } + + /* + * Writes a message. + * + * @param string $message + * @param bool $newLine + * @param bool $isError + * + * @return Output + */ + public function doWrite(string $message, bool $newLine, bool $isError) + { + if (!$this->isVerbose) { + return $this; + } + + $output = $isError ? 'php://stdin' : 'php://stderr'; + + if ($newLine) { + $message .= "\n"; + } + + file_put_contents($output, $message); + + return $this; + } +}