-
Notifications
You must be signed in to change notification settings - Fork 16
/
VerbosityLevel.php
51 lines (42 loc) 路 1.23 KB
/
VerbosityLevel.php
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
<?php
namespace Castor\Console\Output;
use Symfony\Component\Console\Output\OutputInterface;
enum VerbosityLevel: int
{
case NOT_CONFIGURED = -1;
case QUIET = 0;
case NORMAL = 1;
case VERBOSE = 2;
case VERY_VERBOSE = 3;
case DEBUG = 4;
public static function fromSymfonyOutput(OutputInterface $output): self
{
return match ($output->getVerbosity()) {
OutputInterface::VERBOSITY_QUIET => self::QUIET,
OutputInterface::VERBOSITY_NORMAL => self::NORMAL,
OutputInterface::VERBOSITY_VERBOSE => self::VERBOSE,
OutputInterface::VERBOSITY_VERY_VERBOSE => self::VERY_VERBOSE,
OutputInterface::VERBOSITY_DEBUG => self::DEBUG,
};
}
public function isNotConfigured(): bool
{
return self::NOT_CONFIGURED === $this;
}
public function isQuiet(): bool
{
return self::QUIET->value === $this->value;
}
public function isVerbose(): bool
{
return self::VERBOSE->value <= $this->value;
}
public function isVeryVerbose(): bool
{
return self::VERY_VERBOSE->value <= $this->value;
}
public function isDebug(): bool
{
return self::DEBUG->value <= $this->value;
}
}