Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection TYPO3如何在钩子中插入objectManager?_Dependency Injection_Typo3_Hook - Fatal编程技术网

Dependency injection TYPO3如何在钩子中插入objectManager?

Dependency injection TYPO3如何在钩子中插入objectManager?,dependency-injection,typo3,hook,Dependency Injection,Typo3,Hook,也许很简单,但我想不出来 打字错误3 8.7:我正在编写一个小钩子:如果满足某个条件,我想发送一封电子邮件。因此,我需要电子邮件模板的独立视图。但对于独立视图,我需要对象管理器: /** @var \TYPO3\CMS\Fluid\View\StandaloneView $emailView $emailView = $this->objectManager->get('TYPO3\\CMS\\Fluid\\View\\StandaloneView'); 在课程开始时,我尝试注入o

也许很简单,但我想不出来

打字错误3 8.7:我正在编写一个小钩子:如果满足某个条件,我想发送一封电子邮件。因此,我需要电子邮件模板的独立视图。但对于独立视图,我需要对象管理器:

/** @var \TYPO3\CMS\Fluid\View\StandaloneView $emailView
$emailView = $this->objectManager->get('TYPO3\\CMS\\Fluid\\View\\StandaloneView');
在课程开始时,我尝试注入objectManager:

/**
 * @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
 */
protected $objectManager;

/**
 * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager
 * @internal
 */
public function injectObjectManager(\TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager)
{
    $this->objectManager = $objectManager;
}
但它不起作用:我遇到了一个错误:objectManager是一个空对象。这显然意味着吊钩中不存在注入机构


那么如何实现这一点呢?

Extbase依赖项注入在钩子中不可用,因此您必须自己创建对象的实例

$standaloneView = GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\ObjectManager::class)
->get(TYPO3\CMS\Fluid\View\StandaloneView::class);

似乎合乎逻辑,但当我输入这段代码时,我遇到了一个Oops错误!。如果我将这一行分为两行,首先设置objectManager,然后使用$objectManager->get设置standAloneView,它就可以工作了?!?