SampleDataResetCommand.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\SampleData\Console\Command;
  7. use Symfony\Component\Console\Command\Command;
  8. use Symfony\Component\Console\Input\InputInterface;
  9. use Symfony\Component\Console\Output\OutputInterface;
  10. use Magento\SampleData\Model\Dependency;
  11. /**
  12. * Command for reset Sample Data modules version
  13. */
  14. class SampleDataResetCommand extends Command
  15. {
  16. /**
  17. * @var Dependency
  18. */
  19. private $sampleDataDependency;
  20. /**
  21. * @var \Magento\Framework\Module\ModuleResource
  22. */
  23. private $moduleResource;
  24. /**
  25. * @var \Magento\Framework\Module\PackageInfo
  26. */
  27. private $packageInfo;
  28. /**
  29. * @param Dependency $sampleDataDependency
  30. * @param \Magento\Framework\Module\ModuleResource $moduleResource
  31. * @param \Magento\Framework\Module\PackageInfo $packageInfo
  32. */
  33. public function __construct(
  34. Dependency $sampleDataDependency,
  35. \Magento\Framework\Module\ModuleResource $moduleResource,
  36. \Magento\Framework\Module\PackageInfo $packageInfo
  37. ) {
  38. $this->sampleDataDependency = $sampleDataDependency;
  39. $this->moduleResource = $moduleResource;
  40. $this->packageInfo = $packageInfo;
  41. parent::__construct();
  42. }
  43. /**
  44. * {@inheritdoc}
  45. */
  46. protected function configure()
  47. {
  48. $this->setName('sampledata:reset')
  49. ->setDescription('Reset all sample data modules for re-installation');
  50. parent::configure();
  51. }
  52. /**
  53. * {@inheritdoc}
  54. */
  55. protected function execute(InputInterface $input, OutputInterface $output)
  56. {
  57. $sampleDataPackages = $this->sampleDataDependency->getSampleDataPackages();
  58. if (!empty($sampleDataPackages)) {
  59. foreach (array_keys($sampleDataPackages) as $name) {
  60. $moduleName = $this->packageInfo->getModuleName($name);
  61. if ($moduleName !== null) {
  62. $this->moduleResource->setDataVersion($moduleName, '');
  63. }
  64. }
  65. $output->writeln('<info>' . 'Reset of sample data version completed successfully.' . '</info>');
  66. } else {
  67. $output->writeln('<info>' . 'There is no sample data for current set of modules.' . '</info>');
  68. }
  69. }
  70. }