【发布时间】:2014-05-18 22:27:08
【问题描述】:
我正在使用 Symfony2 为我的公司创建 Web 服务。我们公司使用集中配置服务(Zookeeper/etcd)来管理我们服务的配置信息。例如 MySQL、Redis、Memcached 等的连接/主机信息。配置可能全天随机更改。例如,在我们的数据库集群中添加或删除 MySQL 服务器时。所以在 yml/xml 中硬编码配置是不可能的。
所以我正在寻找一种在应用程序启动时修改 config.yml 值的方法。配置中的某些值将是静态的。例如 Twig 和 Switfmailer 配置,但 Doctrine 和 Redis 的其他值需要即时设置。
在 Symfony 应用程序启动之前无法确定配置值,并且无法缓存或编译这些值。我尝试了一些方法来挂钩启动过程并修改配置,但没有任何效果。
附加信息
这里描述了我正在处理的架构示例:http://aredko.blogspot.com/2013/10/coordination-and-service-discovery-with.html 除了 MySQL 和 Redis 等服务之外,我们还需要发现自己的 RESTful 服务。 Zookeeper 被用作服务发现代理。服务的位置(主机名)和确切配置在运行时/启动之前是未知的。
【问题讨论】:
-
你不应该只用write a custom Config implementation 来检查你的上游设置吗?
标签: php symfony apache-zookeeper