Подтвердить что ты не робот

Symfony2 stop Composer, устанавливающий параметры .yml.dist в parameters.yml

Новое в symfony 2.3 composer install script также копирует содержимое файла parameters.yml.dist в файл parameters.yml, объясняется далее здесь.

Мой вопрос: как я могу остановить композитор, претворяющий это действие?

4b9b3361

Ответ 1

Удалите эту строку дважды из composer.json:

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

Это выполняется библиотекой IncenteevParameterHandler, которая содержит script, которая делает это. Удалив script из конфигурации, он никогда не будет вызван.

Если вы удалите эту строку навсегда, вы также можете удалить эти строки (так как библиотека больше не нужна):

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

...

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

Ответ 2

Первое решение: добавьте "keep-outdated": true в разделе "extra" вашего composer.json.

[...]
"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"
}
[...]

stimeev больше не будет удалять параметры.

Второе решение: измените файл app/config/parameter.yml.dist. Для меня это было добавление параметров Sqlite "путь" и "память" и избегать их удаления при каждом обновлении композитора.

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

Я не знаю, какое решение лучше, но оба работают.

Ответ 3

оставляя пустой массив параметров:

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

в дополнительном разделе вашего файла composer.json должно работать.

"incenteev-parameters": {},