Я сделал команду в TYPO3, которая имеет аргументы и внедрение зависимостей (DI).Как я понял в symfony DI сделан методом __construct.Но там я также должен указать аргумент, который я хочу передать команде.Так как же это сделать правильно?
Источники:
Версии: TYPO3 9.5.5, symfony 4.2.5
Скажем, я хочу передать один аргумент команде И ввестиObjectManager из TYPO3:
<?php
namespace Vendor\ExtensionName\Command;
use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
use Symfony\Component\Console\Command\Command;
class SomeCommand extends Command
{
/**
* Object Manager
*
* @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
*/
protected $objectManager;
/**
* @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager
*/
public function __construct(
string $cliParameter,
\TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager)
{
$this->cliParameter = $cliParameter;
$this->objectManager = $objectManager;
}
}
Затем я вызываю это с помощью
bin/typo3 extension_name:someCommand foo
(где foo
- $cliParameter
)
Я получаю
Uncaught TYPO3 Exception Cannot instantiate interface TYPO3\CMS\Extbase\Object\ObjectManagerInterface
Итак, мой вопрос: что я не так сделал?Какой правильный способ сделать это?