TYPO3 - 在 8LTS 中加载扩展时在初始化时加载 css 文件? getPageRenderer() 已贬值

TYPO3 - Load css file on init when extensions gets loaded in 8LTS? getPageRenderer() is depreciated

我曾经在 7LTS 中像这样加载我的扩展时加载 css 文件:

/**
 * Init
 *
 * @return void
 */
public function initializeAction() {

    $GLOBALS['TSFE']->getPageRenderer()->addCssFile('typo3conf/ext/myextension/Resources/Public/Css/myextension.css');

}

在 8LTS 中出现错误:

未捕获的 TYPO3 异常 调用未定义的方法 TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::getPageRenderer()

据说 getPageRenderer() 已贬值:

https://docs.typo3.org/typo3cms/extensions/core/8.7/Changelog/8.0/Breaking-72424-RemovedDeprecatedTypoScriptFrontendControllerOptionsAndMethods.html?highlight=getpagerenderer

现在我的扩展加载时如何加载 css 文件?

我试过了,但没用:

/**
 * Init
 *
 * @return void
 */
public function initializeAction() {

    $pageRender = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class);
    $pageRender->addCssFile('typo3conf/ext/myextension/Resources/Public/Css/basic.css');       

}

重复项 link 描述了另一种方式(通过模板)...但不是通过操作...所以在我看来没有重复项

PageRenderer 本身 已弃用,仅弃用方法 ->getPageRenderer(),因为 PageRenderer 现在是单例。

所以你要做的是 $pageRenderer = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class); 你很好。