Files
kimai2/src/Utils/CommandStyle.php
Kevin Papst 7f20cb045c Refactor authentication system (#2602)
Make auth configuration available via UI, remove FOSUserBundle and SAML-Bundle dependency
2021-06-10 15:34:13 +02:00

71 lines
1.8 KiB
PHP

<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Utils;
use App\Validator\ValidationFailedException;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
final class CommandStyle
{
private $input;
private $output;
private $style;
public function __construct(InputInterface $input, OutputInterface $output)
{
$this->input = $input;
$this->output = $output;
}
private function getStyle(): SymfonyStyle
{
if ($this->style === null) {
$this->style = new SymfonyStyle($this->input, $this->output);
}
return $this->style;
}
public function success($message): void
{
$this->getStyle()->success($message);
}
public function error($message): void
{
$this->getStyle()->error($message);
}
public function warning($message): void
{
$this->getStyle()->warning($message);
}
public function validationError(ValidationFailedException $exception): void
{
$errors = $exception->getViolations();
if ($errors->count() > 0) {
$style = $this->getStyle();
/** @var \Symfony\Component\Validator\ConstraintViolation $error */
foreach ($errors as $error) {
$value = $error->getInvalidValue();
$style->error(
$error->getPropertyPath()
. ' (' . (\is_array($value) ? implode(',', $value) : $value) . ')'
. "\n "
. $error->getMessage()
);
}
}
}
}