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