web-dev-qa-db-fra.com

Symfony2 stop Composer installation de parameters.yml.dist dans parameters.yml

Nouveau dans symfony 2.3 le composer install le script copie également le parameters.yml.dist contenu du fichier dans le parameters.yml fichier, expliqué plus loin ici .

Ma question est, comment puis-je arrêter composer préformer cette action?

47
Andrew Atkinson

Supprimez cette ligne deux fois de votre composer.json:

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

Cela se fait par la bibliothèque IncenteevParameterHandler, qui contient un script qui fait cela. En supprimant le script de la configuration, il ne sera jamais appelé.

Si vous supprimez cette ligne pour toujours, vous pouvez également supprimer ces lignes (car la bibliothèque n'est plus vraiment nécessaire):

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

...

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

Première solution: ajouter "garder obsolète": vrai dans le 'extra' section de votre 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 ne supprimera plus les paramètres.

Deuxième solution: modifiez le fichier app/config/parameter.yml.dist . Pour moi, c'était d'ajouter des paramètres Sqlite 'path' et 'memory' et éviter de les voir supprimés chaque fois que je fais une mise à jour du compositeur .

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

Je ne sais pas quelle solution est la meilleure mais les deux fonctionnent.

56
David Jacquel

en laissant vide ce tableau de paramètres:

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

dans la section supplémentaire de votre fichier composer.json devrait fonctionner.

"incenteev-parameters": {},
4
Xavi

C'est la bonne solution à mon avis:

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

Il a été mentionné dans ce problème github https://github.com/symfony/symfony-standard/issues/642 ainsi que dans la documentation github pour incenteev-parameters https: // github.com/Incenteev/ParameterHandler

1
Bitclaw