1 | <?php |
||
23 | trait ArgumentDataTrait |
||
24 | { |
||
25 | /** @var mixed[] */ |
||
26 | protected array $data = []; |
||
|
|||
27 | |||
28 | /** |
||
29 | * @param InputInterface $input |
||
30 | * |
||
31 | * @throws InvalidArgumentException |
||
32 | */ |
||
33 | protected function initializeDataArgument(InputInterface $input): void |
||
34 | { |
||
35 | $data = $input->getArgument('data'); |
||
36 | |||
37 | if (!\is_string($data)) { |
||
38 | throw new InvalidArgumentException('Argument "data" is not a string.'); |
||
39 | } |
||
40 | |||
41 | try { |
||
42 | $this->data = \json_decode($data, true, 512, \JSON_THROW_ON_ERROR); |
||
43 | } catch (\JsonException $e) { |
||
44 | throw new InvalidArgumentException('Argument "data" is not a valid JSON.'); |
||
45 | } |
||
46 | } |
||
47 | } |
||
48 |