如何正确初始化 $GLOBALS['TSFE']
How to correctly initialize $GLOBALS['TSFE']
在我的 TYPO3 扩展中,我制作了一个自定义控制器 class,它从 TYPO3 后端的某个挂钩调用。
在这个控制器中,我想从 $GLOBALS['TSFE']
得到一些东西,但是当我这样做时 var_dump($GLOBALS['TSFE'])
我收到 null
。问题是如何正确初始化 $GLOBALS['TSFE'
]?
尝试这样的事情:
$GLOBALS['TSFE'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController',$GLOBALS['TYPO3_CONF_VARS'], $id, $type);
虽然 $GLOBALS['TSFE'] 是 TypoScriptFrontendController 的实例化,您可以按照描述使用 makeInstance 正确地实例化它,但您为什么要这样做?
正如您所说,您在 Backend 中工作,TypoScriptFrontendController 为您提供有关当前呈现页面的各种信息(在 Frontend ).
因此,虽然您可以 实例化 TSTypoScriptFrontendControllerFE,但通常不需要:TYPO3 在前端实例化它。
在实例化它之前,我会先检查一下:用例是什么?也许有一些更好的方法来做你想做的事。
在我的 TYPO3 扩展中,我制作了一个自定义控制器 class,它从 TYPO3 后端的某个挂钩调用。
在这个控制器中,我想从 $GLOBALS['TSFE']
得到一些东西,但是当我这样做时 var_dump($GLOBALS['TSFE'])
我收到 null
。问题是如何正确初始化 $GLOBALS['TSFE'
]?
尝试这样的事情:
$GLOBALS['TSFE'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController',$GLOBALS['TYPO3_CONF_VARS'], $id, $type);
虽然 $GLOBALS['TSFE'] 是 TypoScriptFrontendController 的实例化,您可以按照描述使用 makeInstance 正确地实例化它,但您为什么要这样做?
正如您所说,您在 Backend 中工作,TypoScriptFrontendController 为您提供有关当前呈现页面的各种信息(在 Frontend ).
因此,虽然您可以 实例化 TSTypoScriptFrontendControllerFE,但通常不需要:TYPO3 在前端实例化它。
在实例化它之前,我会先检查一下:用例是什么?也许有一些更好的方法来做你想做的事。