如何在实用程序文件中获取TYPO3设置?

Viv*_*mar 10 php typo3 fluid extbase

plugin.tx_xxx {
    setting {
        storagePid = 23
    } 
}
Run Code Online (Sandbox Code Playgroud)

我想在实用程序文件中使用此TYPO3设置.请帮我.

Bha*_*mar 9

上面的方法仅适用于控制器或服务类,尝试下面它将适用于Extension中的任何PHP文件.

$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\Extbase\\Object\\ObjectManager');
$configurationManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager');
$extbaseFrameworkConfiguration = $configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT);
$storagePid = $extbaseFrameworkConfiguration['plugin.']['tx_guesthouse_guesthouse.']['settings.']['storagePid'];
Run Code Online (Sandbox Code Playgroud)


Vis*_*nna 7

您可以在控制器中添加以下行.

$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');    
$configurationManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager');
$setting = $configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS);   
$ts_config = $setting['plugin.']['tx_xxxx.']['settings.']['storagePid'];
Run Code Online (Sandbox Code Playgroud)

我认为这对你有所帮助.您也可以在服务文件中使用此typo3设置.

  • 我觉得这太复杂了.在extbase上下文中,您可以让框架直接为您注入ConfigurationManager.然后你可以使用`$ settings = $ configurationManager-> getConfiguration(\ TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface :: CONFIGURATION_TYPE_SETTINGS);`,你不需要完整的TS. (4认同)

Mih*_*att 5

仅用于TYPO3后端

对于多域,在获取配置之前设置根目录

$configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Configuration\\BackendConfigurationManager');
$configurationManager->currentPageId = ROOT_PID_OF_YOUR_DOMAIN;
$extbaseFrameworkConfiguration = $configurationManager->getTypoScriptSetup();

//Following will be resultant array, find your required stuff from it
print_r($extbaseFrameworkConfiguration);
Run Code Online (Sandbox Code Playgroud)

注意:不要忘了扩展您的类\TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager以获取对其受保护变量的访问权