Indexer.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Mtf\Util\Command\Cli;
  7. use Magento\Mtf\Util\Command\Cli;
  8. /**
  9. * Handle reindexing for tests executions.
  10. */
  11. class Indexer extends Cli
  12. {
  13. /**
  14. * Parameter for reindex command.
  15. */
  16. const PARAM_INDEXER_REINDEX = 'indexer:reindex';
  17. /**
  18. * Parameter for set mode command.
  19. */
  20. const PARAM_SET_MODE = 'indexer:set-mode';
  21. /**
  22. * Run reindex.
  23. *
  24. * @param array $indexes [optional]
  25. * @return void
  26. */
  27. public function reindex(array $indexes = [])
  28. {
  29. $params = '';
  30. if (!empty($indexes)) {
  31. $params = implode(' ', $indexes);
  32. }
  33. parent::execute(Indexer::PARAM_INDEXER_REINDEX . ' ' . $params);
  34. }
  35. /**
  36. * Run set mode. Example of indexers array:
  37. * [
  38. * [0] => ['indexer' => 'category_flat_data', 'mode' => 'schedule'],
  39. * [1] => ['indexer' => 'catalogrule_product', 'mode' => 'realtime']
  40. * ]
  41. *
  42. * @param array $indexers
  43. * @return void
  44. */
  45. public function setMode(array $indexers)
  46. {
  47. foreach ($indexers as $indexer) {
  48. parent::execute(Indexer::PARAM_SET_MODE . ' ' . $indexer['mode'] . ' ' . $indexer['indexer']);
  49. }
  50. }
  51. }