我有一个从 packagist.org 导入并位于供应商目录中的捆绑包
该捆绑包有一个带有参数的 services.yml 配置文件
parameters:
myservice.class: ...
myservice.options:
MERCHANT_ID: '11223344556677'
ACCESS_KEY: YourAccesKey
...
Run Code Online (Sandbox Code Playgroud)
我只想覆盖app/config/parameters.yml中的一个参数,但它会删除所有 myservice.options 数组
parameters:
myservice.options:
MERCHANT_ID: '99999999999999'
Run Code Online (Sandbox Code Playgroud)
如何只覆盖一个参数?
小智 4
您应该公开您的捆绑配置,执行此操作的文档位于此处:
下面的代码基础。应该对数组的每个参数进行
// 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;
}
Run Code Online (Sandbox Code Playgroud)
然后他的config.yml文件中的每个用户都会定义他的私有参数:
your_bundle
parameters:
MERCHANT_ID: XXXXXX
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8871 次 |
| 最近记录: |