mirror of
https://github.com/Codappix/search_core.git
synced 2024-11-23 20:36:12 +01:00
1.9 KiB
1.9 KiB
Using custom (non-typoscript) configuration
When you are in need of your own non-typoscript configuration, you can create your own Configuration Container using the TYPO3 Dependency Injection handler.
Example: Configuration through LocalConfiguration.php
Configure your custom ext_localconf.php:
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\Container\Container::class)
->registerImplementation(
\Codappix\SearchCore\Configuration\ConfigurationContainerInterface::class,
\YourNamespace\Configuration\SearchCoreConfigurationContainer::class
);
SearchCoreConfigurationContainer.php:
<?php
namespace YourNamespace\Configuration;
use Codappix\SearchCore\Configuration\ConfigurationContainer;
use Codappix\SearchCore\Configuration\NoConfigurationException;
use TYPO3\CMS\Core\Utility\ArrayUtility;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
/**
* Class SearchCoreConfigurationContainer
* @package YourNamespace\Configuration
*/
class SearchCoreConfigurationContainer extends ConfigurationContainer
{
/**
* Inject settings via ConfigurationManager.
*
* @throws NoConfigurationException
*/
public function injectConfigurationManager(ConfigurationManagerInterface $configurationManager)
{
parent::injectConfigurationManager($configurationManager);
// Now override settings with LocalConfiguration
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['search_core'])) {
ArrayUtility::mergeRecursiveWithOverrule($this->settings, $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['search_core']);
}
// Or manipulate it your own custom way.
}
}