Cron.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * Cron application
  4. *
  5. * Copyright © Magento, Inc. All rights reserved.
  6. * See COPYING.txt for license details.
  7. */
  8. namespace Magento\Framework\App;
  9. use Magento\Framework\App;
  10. use Magento\Framework\ObjectManagerInterface;
  11. /**
  12. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  13. */
  14. class Cron implements \Magento\Framework\AppInterface
  15. {
  16. /**
  17. * @var State
  18. */
  19. protected $_state;
  20. /**
  21. * @var Console\Request
  22. */
  23. protected $_request;
  24. /**
  25. * @var Console\Response
  26. */
  27. protected $_response;
  28. /**
  29. * Object manager
  30. *
  31. * @var ObjectManagerInterface
  32. */
  33. private $objectManager;
  34. /**
  35. * @var \Magento\Framework\App\AreaList
  36. */
  37. private $areaList;
  38. /**
  39. * Inject dependencies
  40. *
  41. * @param State $state
  42. * @param Console\Request $request
  43. * @param Console\Response $response
  44. * @param ObjectManagerInterface $objectManager
  45. * @param array $parameters
  46. * @param AreaList|null $areaList
  47. */
  48. public function __construct(
  49. State $state,
  50. Console\Request $request,
  51. Console\Response $response,
  52. ObjectManagerInterface $objectManager,
  53. array $parameters = [],
  54. \Magento\Framework\App\AreaList $areaList = null
  55. ) {
  56. $this->_state = $state;
  57. $this->_request = $request;
  58. $this->_request->setParams($parameters);
  59. $this->_response = $response;
  60. $this->objectManager = $objectManager;
  61. $this->areaList = $areaList ? $areaList : $this->objectManager->get(\Magento\Framework\App\AreaList::class);
  62. }
  63. /**
  64. * Run application
  65. *
  66. * @return ResponseInterface
  67. */
  68. public function launch()
  69. {
  70. $this->_state->setAreaCode(Area::AREA_CRONTAB);
  71. $configLoader = $this->objectManager->get(\Magento\Framework\ObjectManager\ConfigLoaderInterface::class);
  72. $this->objectManager->configure($configLoader->load(Area::AREA_CRONTAB));
  73. $this->areaList->getArea(Area::AREA_CRONTAB)->load(Area::PART_TRANSLATE);
  74. /** @var \Magento\Framework\Event\ManagerInterface $eventManager */
  75. $eventManager = $this->objectManager->get(\Magento\Framework\Event\ManagerInterface::class);
  76. $eventManager->dispatch('default');
  77. $this->_response->setCode(0);
  78. return $this->_response;
  79. }
  80. /**
  81. * {@inheritdoc}
  82. */
  83. public function catchException(App\Bootstrap $bootstrap, \Exception $exception)
  84. {
  85. return false;
  86. }
  87. }