Nuevo en Symfony 4.3: Procesado de URLs en variables de entorno
Cuando se utilizan variables de entorno para configurar aplicaciones Symfony resulta común usar URLs para definir valores de tipo DSN como el siguiente:
# .env MONGODB_URL="mongodb://db_user:[email protected]:27017/db_name"
Sin embargo, a veces tienes que acceder a alguna parte de la URL para definir
el valor de otras opciones (por ejemplo, el número del puerto o el nombre de la
base de datos). En Symfony 4.3 hemos añadido dos nuevos procesadores de
variables de entorno llamados url
y query_string
que te pueden ayudar en
esos casos.
El procesador url
parsea la URL guardada en la variable de entorno indicada
y devuelve un array asociativo con sus partes, por lo que puedes combinarlo con
el procesador key
:
# config/packages/mongodb.yaml mongo_db_bundle: clients: default: # ... username: '%env(key:user:url:MONGODB_URL)%' password: '%env(key:pass:url:MONGODB_URL)%' connections: default: database_name: '%env(key:path:url:MONGODB_URL)%'
El procesador query_string
parsea la parte de la query string de la URL y
devuelve un array asociativo con sus parámetros y valores, por lo que en este
caso también puedes combinarlo con el procesador key
. Si la variable de
entorno es la siguiente:
# .env MONGODB_URL="mongodb://db_user:[email protected]:27017/db_name?timeout=3000"
Puedes obtener el valor del parámetro timeout
de la query string de la
siguiente manera:
# config/packages/mongodb.yaml mongo_db_bundle: clients: default: # ... connectTimeoutMS: '%env(int:key:timeout:query_string:MONGODB_URL)%'
Esta funcionalidad fue contribuida por Jérémy Derussé en el pull request #28975.
Fuente: New in Symfony 4.3: URL Env Var Processor
Comentarios
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.