1: | <?php declare(strict_types=1); |
2: | |
3: | namespace Salient\Contract\Console\Target; |
4: | |
5: | use Salient\Contract\Console\Format\FormatterInterface; |
6: | use Salient\Contract\HasMessageLevel; |
7: | |
8: | /** |
9: | * @api |
10: | */ |
11: | interface TargetInterface extends HasMessageLevel |
12: | { |
13: | /** |
14: | * Get the target's output formatter |
15: | */ |
16: | public function getFormatter(): FormatterInterface; |
17: | |
18: | /** |
19: | * Get the width of the target in columns, or null if output written to the |
20: | * target should not be wrapped |
21: | * |
22: | * Output written to the target may exceed its width, e.g. if a message |
23: | * contains preformatted text or a long word, but long lines may be |
24: | * truncated if the target cannot display or record them. |
25: | */ |
26: | public function getWidth(): ?int; |
27: | |
28: | /** |
29: | * Write formatted output to the target |
30: | * |
31: | * @param TargetInterface::LEVEL_* $level |
32: | * @param array<string,mixed> $context |
33: | */ |
34: | public function write(int $level, string $message, array $context = []): void; |
35: | |
36: | /** |
37: | * Close the target and any underlying resources |
38: | */ |
39: | public function close(): void; |
40: | } |
41: |