Изменить часть Symfony Configuration TreeBuilder
У меня есть спецификация родительской конфигурации
GenericDatabaseAdapterConfiguration implements ConfigurationInterface
У него есть некоторые значения по умолчанию - хост, пользователь и пароль. Тогда есть дети, которые имеют свои конкретные параметры конфигурации.
MySQLDatabaseAdapterConfiguration extends GenericDatabaseAdapterConfiguration
Она имеет charset
вариант, что MSSQLDatabaseAdapterConfiguration
не имеет.
Что было бы хорошим способом изменить существующий TreeBuilder
что возвращается из GenericDatabaseAdapterConfiguration::getConfigTreeBuilder()
, В идеале хотелось бы что-то вроде parent::getConfigTreeBuilder()->appendTo('parameters', $mssqlCustomSettingsNode);
, но этого не существует.
До сих пор я создавал точки расширения внутри класса Generic. $this->append($this->getSshTunnelConnectionParametersNode())
вызывается внутри дерева и пустой метод getSshTunnelConnectionParametersNode
находится внутри общего класса, который может быть переопределен у детей. Но это не идеально, так как мне нужно предвидеть каждую возможную точку расширения в классе Generic.
Есть ли способ лучше?