Symfony2停止Composer将parameters.yml.dist安装到parameters.yml中



在symfony 2.3中新增的composer install脚本还将parameters.yml.dist文件内容复制到parameters.yml文件中,此处对此进行了进一步解释。

我的问题是,如何才能阻止作曲家预先创作这个动作?

composer.json:中删除这一行两次

"Incenteev\ParameterHandler\ScriptHandler::buildParameters",

这是由IncentievParameterHandler库完成的,该库包含一个执行此操作的脚本。通过从配置中删除脚本,它将永远不会被调用。

如果你永远删除那行,你也可以删除这些行(因为库已经不需要了):

"incenteev/composer-parameter-handler": "~2.0",
...
"incenteev-parameters": {
    "file": "app/config/parameters.yml"
},

第一个解决方案:在composer.json.的‘extra’部分添加"保持过时":true

[...]
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "incenteev-parameters": {
        "file": "app/config/parameters.yml",
        "keep-outdated": true  <------------ ADDED LINE ------------
    },
    "branch-alias": {
        "dev-master": "2.3-dev"
    },
    "symfony-assets-install": "symlink"
}
[...]

燃烧将不再删除参数。

第二个解决方案:修改app/config/parameter.yml.dist文件。对我来说,这是添加Sqlite参数"路径"《内存》,避免每次更新composer时看到它们被删除

# app/config/parameter.yml.dist
parameters:
    database_driver:   pdo_sqlite
    database_host:     ~
    database_port:     ~
    database_name:     ~
    database_user:     ~
    database_password: ~
    database_path:     ~ <------------ ADDED LINE ------------
    database_memory:   ~ <------------ ADDED LINE ------------
[...]

我不知道哪种解决方案是最好的,但两者都有效。

将此参数数组留空:

"incenteev-parameters": {
    "file": "app/config/parameters.yml"
},

在composer.json文件的额外部分应该可以工作。

"incenteev-parameters": {},

在我看来,这是正确的解决方案:

"incenteev-parameters": {
    "file": "app/config/parameters.yml",
    "keep-outdated": true
},

这个github问题中提到了它https://github.com/symfony/symfony-standard/issues/642以及在github文档中的燃烧参数https://github.com/Incenteev/ParameterHandler

相关内容

  • 没有找到相关文章

最新更新