Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractCacheManageCommand.php
Go to the documentation of this file.
1 <?php
8 
9 use Symfony\Component\Console\Input\InputArgument;
10 use Symfony\Component\Console\Input\InputInterface;
11 
17 {
21  const INPUT_KEY_TYPES = 'types';
22 
26  protected function configure()
27  {
28  $this->addArgument(
29  self::INPUT_KEY_TYPES,
30  InputArgument::IS_ARRAY,
31  'Space-separated list of cache types or omit to apply to all cache types.'
32  );
33  parent::configure();
34  }
35 
42  protected function getRequestedTypes(InputInterface $input)
43  {
44  $requestedTypes = [];
45  if ($input->getArgument(self::INPUT_KEY_TYPES)) {
46  $requestedTypes = $input->getArgument(self::INPUT_KEY_TYPES);
47  $requestedTypes = array_filter(array_map('trim', $requestedTypes), 'strlen');
48  }
49  if (empty($requestedTypes)) {
50  return $this->cacheManager->getAvailableTypes();
51  } else {
52  $availableTypes = $this->cacheManager->getAvailableTypes();
53  $unsupportedTypes = array_diff($requestedTypes, $availableTypes);
54  if ($unsupportedTypes) {
55  throw new \InvalidArgumentException(
56  "The following requested cache types are not supported: '" . join("', '", $unsupportedTypes)
57  . "'." . PHP_EOL . 'Supported types: ' . join(", ", $availableTypes)
58  );
59  }
60  return array_values(array_intersect($availableTypes, $requestedTypes));
61  }
62  }
63 }