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