ModuleIterator.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Model\ReportXml;
  7. use Magento\Framework\Module\Manager as ModuleManager;
  8. /**
  9. * Iterator for ReportXml modules
  10. */
  11. class ModuleIterator extends \IteratorIterator
  12. {
  13. /**
  14. * @var ModuleManager
  15. */
  16. private $moduleManager;
  17. /**
  18. * @param ModuleManager $moduleManager
  19. * @param \Traversable $iterator
  20. */
  21. public function __construct(
  22. ModuleManager $moduleManager,
  23. \Traversable $iterator
  24. ) {
  25. parent::__construct($iterator);
  26. $this->moduleManager = $moduleManager;
  27. }
  28. /**
  29. * Returns module with module status
  30. *
  31. * @return array
  32. */
  33. public function current()
  34. {
  35. $current = parent::current();
  36. if (is_array($current) && isset($current['module_name'])) {
  37. $current['status'] =
  38. $this->moduleManager->isEnabled($current['module_name']) == 1 ? 'Enabled' : "Disabled";
  39. }
  40. return $current;
  41. }
  42. }