47

symfony 2.3 中的新composer install脚本还将parameters.yml.dist文件内容复制到文件中,这里parameters.yml有进一步的解释。

我的问题是,我怎样才能阻止作曲家执行此操作?

4

4 回答 4

78

从您的 : 中删除此行两次composer.json

"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",

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

如果您永远删除该行,您也可以删除这些行(因为不再需要该库):

"incenteev/composer-parameter-handler": "~2.0",

...

"incenteev-parameters": {
    "file": "app/config/parameters.yml"
},
于 2013-07-03T15:17:08.057 回答
59

第一个解决方案:在composer.json'extra'部分添加"keep-outdated": 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"
}
[...]

incenteev将不再删除参数。

第二种解决方案:修改app/config/parameter.yml.dist文件。对我来说,这是添加 Sqlite 参数'path''memory'并避免在每次执行composer update时看到它们被删除。

# 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 ------------
[...]

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

于 2013-10-01T21:53:27.103 回答
4

将此参数数组留空:

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

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

"incenteev-parameters": {},
于 2013-07-03T15:20:54.720 回答
2

我认为这是正确的解决方案:

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

在这个 github 问题https://github.com/symfony/symfony-standard/issues/642以及 incenteev-parameters 的 github 文档中都提到了这一点https://github.com/Incenteev/ParameterHandler

于 2016-11-23T10:54:42.153 回答