gpt4 book ai didi

symfony 服务 : override just one parameter

转载 作者:行者123 更新时间:2023-12-04 13:28:02 25 4
gpt4 key购买 nike

我有一个从 packagist.org 导入的包,位于 供应商 目录
这个包有一个带有参数的 services.yml 配置文件

parameters:
myservice.class: ...
myservice.options:
MERCHANT_ID: '11223344556677'
ACCESS_KEY: YourAccesKey
...

我想覆盖 只有一个参数在我的 app/config/parameters.yml 但它删除了所有 myservice.options 数组
parameters:
myservice.options:
MERCHANT_ID: '99999999999999'

如何只覆盖一个参数?

最佳答案

您应该公开您的捆绑配置,执行此操作的文档在这里:

http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class

下面的代码库。应该对数组的每个参数进行

// ACME/YourBundle/DependencyInjection/Configuration.php
class Configuration implements ConfigurationInterface
{

public function getConfigTreeBuilder()
{

$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('your_bundle');

$rootNode
->children()
->arrayNode('parameters')
->prototype('array')
->treatNullLike(array())
->children()
->scalarNode('MERCHANT_ID')
->isRequired()
->cannotBeEmpty()
->end()
[...] // Another node
->end()
->end()
->end()
->end()
->end()
;

return $treeBuilder;
}

然后每个用户在他的 config.yml文件将定义他的私有(private)参数:
your_bundle
parameters:
MERCHANT_ID: XXXXXX

关于symfony 服务 : override just one parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19155936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com