Вы можете использовать значение %kernel.debug%
для непосредственной настройки вашего модуля без необходимости явной настройки для этого значения.
Измените свой класс конфигурации так, чтобы он шел:
class ApplicationConfiguration implements ConfigurationInterface
{
private $debug;
public function __construct($debug)
{
$this->debug = (bool) $debug;
}
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder('rvlt_digital_symfony_api');
$treeBuilder->getRootNode()
->addDefaultsIfNotSet()
->children()
->booleanNode('property_cache_enabled')->defaultValue($this->debug)->end()
->end();
return $treeBuilder;
}
}
И ваш класс расширения, чтобы при создании экземпляра конфигурации значение %kernel.debug%
считывалось из контейнера и вставлялось в экземпляр конфигурации:
class ApplicationExtension extends Extension
{
public function getConfiguration(array $config, ContainerBuilder $container)
{
return new Configuration($container->getParameter('kernel.debug'));
}
}
Таким образом, если вы не настроите конфигурацию для rvlt_digital_symfony_api.property_cache_enabled
, она просто будет соответствовать настройке приложения %kernel.debug%
, что вы и хотели. (Вы все равно можете настроить это значение и переопределить значение по умолчанию).
Этот вариант использования подробно описан в документации здесь: Использование параметров в классе внедрения зависимостей