如何为symfony设置环境变量。
就像我运行我的项目一样,它应该解开环境并执行操作,例如-
http: //production.com -> prod * environment * http: //localhost:9200 -> * dev * environment --- for elasticsearch http: //localhost:8000 -> * dev * environment --- for doctrine/mysql
因此,如果我在本地主机上运行mysql请求,则应在以下位置发出请求
http: //localhost:8000
如果我提出对Elasticsearch的要求,则应在以下位置提出要求
http: //localhost:9200
如果它在生产环境中运行,则应在
http: //production.com:9200 --- elasticsearch http: //production.com:8000 --- doctrine/mysql
我认为可以做到这一点,parameters.yml但我真的不知道如何做到。
parameters.yml
有人可以帮我解决这个问题。非常感谢高级。
我不确定这是什么问题,因此我将为您提供更一般的答案。
Symfony提供了一种非常好的方式来针对不同情况(或环境)配置项目。您应该看一下详细解释事情的官方文档。
默认情况下,Symfony具有针对不同环境的3种配置:
app/config/config_dev.yml
app/config/config_prod.yml
app/config/config_test.yml
每个配置文件都可以覆盖基本配置文件中的设置app/config/config.yml。您将在此处存储常规/通用设置。每当需要为特定环境覆盖某些内容时,只需转到环境配置并进行更改。
app/config/config.yml
假设您在中具有以下基本配置app/config/config.yml:
# Doctrine Configuration doctrine: dbal: driver: pdo_mysql host: "%prod_database_host%" port: "%prod_database_port%" dbname: "%prod_database_name%" user: "%prod_database_user%" password: "%prod_database_password%" charset: UTF8
现在让我们说,你必须为每个环境中3级不同的数据库- prod,dev和test。这样做的方法是覆盖环境配置文件中的配置(让我们说app/config/config_dev.yml:
prod
dev
test
# Doctrine Configuration doctrine: dbal: driver: pdo_mysql host: "%dev_database_host%" port: "%dev_database_port%" dbname: "%dev_database_name%" user: "%dev_database_user%" password: "%dev_database_password%" charset: UTF8
在和中添加必要的%dev_*%参数。现在,每当您使用环境打开应用程序时,它将在您的参数()中连接到指定的数据库。app/config/parameters.yml.dist``app/config/parameters.yml``dev``%dev_database...%
%dev_*%
app/config/parameters.yml.dist``app/config/parameters.yml``dev``%dev_database...%
差不多了。您可以对在特定环境中需要更改的任何配置执行相同的操作。您绝对应该看一下文档。通过示例直接说明。