Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

regenera parameters.yml en symfony 2.7.x

22 de octubre de 2015

Saludos

estaba haciendo un "composer update", regenero el archivo parameters.yml

En ese archivo tengo los parametros de conexion a 3 bd, pero al actualizar solo me deja uno.

Como puedo impedir que composer haga esto.

Gracias.


Respuestas

#1

En Symfony existen dos archivos para definir los parámetros:

  • parameters.yml.dist es como una plantilla con la que se genera el archivo parameters.yml
  • parameters.yml es el verdadero archivo de configuración que utiliza la aplicación Symfony.

La idea es que subas al repositorio y compartas con todos tus compañeros de trabajo el archivo parameters.yml.dist. Después, al instalar el proyecto en tu máquina local, se genera el otro archivo parameters.yml y ahí es donde modificas las opciones de configuración.

Esto se hace así para que todas las personas que trabajan en el proyecto tengan la misma configuración (no falte o sobre ninguna opción) pero que cada uno pueda modificar los valores sin afectar a los demás (yo no tengo porqué tener la misma contraseña de base de datos que tú, por ejemplo).

Cuando haces un composer update, Symfony hace dos cosas con este archivo:

  • Las opciones de parameters.yml que no existen en parameters.yml.dist se borran.
  • Las opciones de parameters.yml.dist que no existen en parameters.yml se añaden (y para eso te preguntan qué valor quieres darles).

Tienes dos formas de solucionarlo:

1) La mejor forma es añadir en parameters.yml.dist todos los valores de configuración de la aplicación (en tu caso, las tres credenciales de las bases de datos).

2) Añadir la siguiente configuración en composer.json para decirle a Symfony que no te borre de parameters.yml las opciones que no existan en parameters.yml.dist:

{
    "extra": {
        "incenteev-parameters": {
            "keep-outdated": true
        }
    }
}

@javiereguiluz

22 octubre 2015, 21:53
#2

Gracias por tu respuesta, está muy bien explicada. Voy optar por la primera opción.

@dariongg

22 octubre 2015, 23:28