Symfony2 stop Composer installing parameters.yml.dist into parameters.yml

后端 未结 4 585
有刺的猬
有刺的猬 2020-12-13 08:47

New in symfony 2.3 the composer install script also copies the parameters.yml.dist file contents into the parameters.yml file, explain

相关标签:
4条回答
  • 2020-12-13 09:03

    leaving empty this array of parameters:

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

    in the extra section of your composer.json file should work.

    "incenteev-parameters": {},
    
    0 讨论(0)
  • 2020-12-13 09:07

    This is the correct solution in my opinion:

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

    It was mentioned in this github issue https://github.com/symfony/symfony-standard/issues/642 as well as in the github documentation for incenteev-parameters https://github.com/Incenteev/ParameterHandler

    0 讨论(0)
  • 2020-12-13 09:08

    Remove this line twice from your composer.json:

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

    This is done by the IncenteevParameterHandler library, which contains a script that does this. By removing the script from the config, it will never be called.

    If you remove that line for ever, you can also remove these lines (as the library isn't really needed anymore):

    "incenteev/composer-parameter-handler": "~2.0",
    
    ...
    
    "incenteev-parameters": {
        "file": "app/config/parameters.yml"
    },
    
    0 讨论(0)
  • 2020-12-13 09:14

    First solution : add "keep-outdated": true in the 'extra' section of your 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"
    }
    [...]
    

    incenteev will not remove parameters any more.

    Second solution : modify the app/config/parameter.yml.dist file. For me it was to add Sqlite parameters 'path' and 'memory' and avoid to see them deleted each time I do a 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 ------------
    [...]
    

    I don't know which solution is the best but both works.

    0 讨论(0)
提交回复
热议问题