在docker-compose.yml中:
mysql: image: mysql:latest container_name: mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=symfony - MYSQL_USER=symfony - MYSQL_PASSWORD=symfony
我如何在yml配置文件中获取此变量:
parameters: database_host: 172.17.42.4 database_port: 3306 database_name: symfony database_user: symfony database_password: symfony
在$ _SERVER中,它们的获取方式如下:
$_SERVER["SYMFONY_MYSQL_ENV_MYSQL_DATABASE"], $_SERVER["SYMFONY_MYSQL_PORT_3306_TCP_ADDR"], $_SERVER["SYMFONY_MYSQL_ENV_MYSQL_PASSWORD"], $_SERVER["SYMFONY_MYSQL_ENV_MYSQL_USER"]
在symfony中,可以将PHP文件包含在yaml配置中,在其中可以在运行时设置参数,以覆盖parameters.yml中的静态参数值。
在您的app / config / config.yml中
imports: - { resource: parameters.yml } - { resource: parameters.php }
然后使用以下内容创建文件app / config / parameters.php
<?php // app/config/parameters.php $container->setParameter('database_name', $_SERVER['SYMFONY_MYSQL_ENV_MYSQL_DATABASE']); $container->setParameter('database_host', $_SERVER['SYMFONY_MYSQL_PORT_3306_TCP_ADDR']); $container->setParameter('database_user', $_SERVER['SYMFONY_MYSQL_ENV_MYSQL_USER']); $container->setParameter('database_password', $_SERVER['SYMFONY_MYSQL_ENV_MYSQL_PASSWORD']);