首页 > 解决方案 > 从控制器更改 TYPO3 中的全局变量

问题描述

在 TYPO3 CMS 中,如果您想更改日志的保存位置,您需要更改$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration']并添加您的文件位置。好吧,我正在开发一个允许用户更改此行为的扩展,但问题是我无法在运行时更改它。我的意思是,如果我写:

$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration'] = "some thing new'

在调试时,我可以看到它在 $GLOBALS 中发生了变化,但在配置后记中不会发生变化。我记得那里有一个用于更改/添加新配置的功能,但我找不到它。任何人都可以帮忙吗?

我正在使用 TYPO3 CMS v9.5.5

标签: typo3typo3-9.x

解决方案


我猜你在找 TYPO3\CMS\Core\Configuration\ConfigurationManager::updateLocalConfiguration()

/**
 * Override local configuration with new values.
 *
 * @param array $configurationToMerge Override configuration array
 */

它可以按如下方式使用:

<?php
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$configurationManager = $objectManager->get(ConfigurationManagerInterface::class);
$configurationManager->updateLocalConfiguration('...');

推荐阅读