我正在尝试将变量从PHP配置文件传递到YAML文件,我不确定它是否可以正常工作,因为客户端尚无法提供某些令牌问题,因此我无法对其进行测试。
我所做的是:
在PHP文件Config.php中创建了Config类的对象:
$obj = new Config();
$obj->processEnv();
$obj->define('PROD_PASSWORD', '12345');
在YAML文件中:
imports:
- { resource: Config.php }
prod:
doctrine:
class: sfDoctrineDatabase
param:
username: username
password: %PROD_PASSWORD%
请告知这是一种好的做法,还是有其他方法可以实现?
答案 0 :(得分:2)
是的,混合格式非常好,在某些情况下,Symfony甚至建议使用不同的格式,例如,当您编写将分发的分发包时,最佳做法建议使用XML,而默认情况下,建议在应用程序中使用YAML。当使用一种格式(在生产中)使用另一种格式时,没有性能上的缺点,因为在任何情况下,配置都会被编译并缓存为.php文件。只要在内核中注册了适当的加载器,它就可以加载配置并将其与其余配置合并。
作为最佳实践,您应该坚持一种格式,以使其他人更容易加入该项目。由于所有格式都支持相同的功能,并且格式不受性能的影响,因此我看不出混合样式的原因。