1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
/** |
5
|
|
|
* ImportCommandController.php |
6
|
|
|
*/ |
7
|
|
|
namespace HDNET\Importr\Command; |
8
|
|
|
|
9
|
|
|
use HDNET\Importr\Service\Manager; |
10
|
|
|
use Symfony\Component\Console\Command\Command; |
11
|
|
|
use Symfony\Component\Console\Input\InputInterface; |
12
|
|
|
use Symfony\Component\Console\Output\OutputInterface; |
13
|
|
|
use TYPO3\CMS\Core\Messaging\FlashMessage; |
14
|
|
|
use TYPO3\CMS\Core\Messaging\FlashMessageService; |
15
|
|
|
use TYPO3\CMS\Core\Utility\GeneralUtility; |
16
|
|
|
use TYPO3\CMS\Extbase\Object\ObjectManager; |
17
|
|
|
|
18
|
|
|
/** |
19
|
|
|
* ImportCommandController |
20
|
|
|
* |
21
|
|
|
* For initializing the Manager |
22
|
|
|
*/ |
23
|
|
|
class ImportCommandController extends Command |
24
|
|
|
{ |
25
|
|
|
|
26
|
|
|
/** |
27
|
|
|
* @var object|\Psr\Log\LoggerAwareInterface|\TYPO3\CMS\Core\SingletonInterface|ObjectManager |
28
|
|
|
*/ |
29
|
|
|
protected $objectManager; |
30
|
|
|
|
31
|
|
|
/** |
32
|
|
|
* ImportCommandController constructor. |
33
|
|
|
* @param string|null $name |
34
|
|
|
*/ |
35
|
|
|
public function __construct(string $name = null) |
36
|
|
|
{ |
37
|
|
|
parent::__construct($name); |
38
|
|
|
|
39
|
|
|
$this->objectManager = GeneralUtility::makeInstance(ObjectManager::class); |
40
|
|
|
} |
41
|
|
|
|
42
|
|
|
protected function configure() |
43
|
|
|
{ |
44
|
|
|
$this->setDescription('tbd'); |
45
|
|
|
$this->setHelp('tbd'); |
46
|
|
|
} |
47
|
|
|
|
48
|
|
|
/** |
49
|
|
|
* @param InputInterface $input |
50
|
|
|
* @param OutputInterface $output |
51
|
|
|
* @return int |
52
|
|
|
*/ |
53
|
|
|
protected function execute(InputInterface $input, OutputInterface $output) |
54
|
|
|
{ |
55
|
|
|
$this->initializeServiceManagerCommand(); |
56
|
|
|
|
57
|
|
|
return 0; |
58
|
|
|
} |
59
|
|
|
|
60
|
|
|
/** |
61
|
|
|
* initializes the import service manager |
62
|
|
|
* |
63
|
|
|
* @param string $mail Set an email address for error reporting |
64
|
|
|
* |
65
|
|
|
* @return bool |
66
|
|
|
*/ |
67
|
|
|
public function initializeServiceManagerCommand($mail = null) |
|
|
|
|
68
|
|
|
{ |
69
|
|
|
$message = GeneralUtility::makeInstance( |
70
|
|
|
FlashMessage::class, |
71
|
|
|
'', |
72
|
|
|
'Initializing ServiceManager', |
73
|
|
|
FlashMessage::INFO, |
74
|
|
|
true |
75
|
|
|
); |
76
|
|
|
$this->addFlashMessage($message); |
77
|
|
|
|
78
|
|
|
$manager = $this->objectManager->get(Manager::class); |
79
|
|
|
try { |
80
|
|
|
// let the manager run the imports now |
81
|
|
|
$manager->runImports(); |
82
|
|
|
} catch (\Exception $e) { |
83
|
|
|
$message = GeneralUtility::makeInstance( |
84
|
|
|
FlashMessage::class, |
85
|
|
|
'', |
86
|
|
|
'An Error occured: ' . $e->getCode() . ': ' . $e->getMessage(), |
87
|
|
|
FlashMessage::ERROR |
88
|
|
|
); |
89
|
|
|
$this->addFlashMessage($message); |
90
|
|
|
|
91
|
|
|
// @TODO: Send email when the manager crashes. |
92
|
|
|
return false; |
93
|
|
|
} |
94
|
|
|
return true; |
95
|
|
|
} |
96
|
|
|
|
97
|
|
|
/** |
98
|
|
|
* @param FlashMessage $flashMessage |
99
|
|
|
*/ |
100
|
|
|
protected function addFlashMessage(FlashMessage $flashMessage) |
101
|
|
|
{ |
102
|
|
|
$flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class); |
103
|
|
|
$messageQueue = $flashMessageService->getMessageQueueByIdentifier(); |
104
|
|
|
$messageQueue->addMessage($flashMessage); |
105
|
|
|
} |
106
|
|
|
} |
107
|
|
|
|
This check looks from parameters that have been defined for a function or method, but which are not used in the method body.