mysql - 为 doctrine 和 elasticsearch 设置环境变量

标签 mysql symfony elasticsearch

如何为 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 中完成,但我真的不知道如何完成。

谁能帮我解决这个问题。 非常感谢高级。

最佳答案

我不确定这里的问题是什么,所以我会给你一个更笼统的答案。

Symfony 有一个非常好的方法来为不同的情况(或环境)配置你的项目。你应该看看 official documentation这深入地解释了事情。

默认情况下,Symfony 为不同的环境提供了 3 种配置:

  1. app/config/config_dev.yml 用于开发
  2. app/config/config_prod.yml 用于生产
  3. app/config/config_test.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 个不同的数据库 - proddevtest。这样做的方法是覆盖环境配置文件中的配置(比方说 app/config/config_dev.yml:

# 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.distapp/config/parameters.yml。现在,无论何时使用 dev 环境打开应用程序,它都会连接到参数中指定的数据库 (%dev_database...%)。

差不多就这些了。您可以对需要在特定环境中更改的任何配置执行相同的操作。你绝对应该看看文档。它通过示例直接解释。

关于mysql - 为 doctrine 和 elasticsearch 设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32479992/

相关文章:

mysql - Spring Data JPA 中的 MIN/MAX 函数与 Amazon Aurora DB(每组最大 n 次查询)

php - Symfony 2.8 文件上传 "Cannot read index ".. ."from object of type because Entity doesn' t 实现 ArrayAccess。”

node.js - 在 Symfony2 应用程序中包含 Node.JS + Socket.IO

java - 在术语查询中具有动态列表值的elasticsearch QueryBuilder

mysql:使用连接更新

php - Jquery:验证表单而不刷新页面

php - 复杂子计算的MySQL语法

php - OneupUploaderBundle(blueimp),- 不允许使用方法

elasticsearch - 如何在 Elasticsearch 中不包含敏感数据?

performance - elasticsearch的索引性能不佳