Изменить часть 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.

Есть ли способ лучше?

0 ответов

Другие вопросы по тегам