全局访问symfony2的配置值

时间:2012-02-09 10:30:48

标签: php symfony config

如何从应用中的任何位置获取配置值(自定义)?

我想在实体的方法prePersist中的控制器外部进行此操作。依赖注入在这里听起来也不合逻辑。

是不是有一些获取配置类或内核的静态方法..?

2 个答案:

答案 0 :(得分:0)

依赖注入是Symfony 2使用配置的方式:为您的逻辑创建服务,在服务中注入您的配置,并使用OO逻辑在其他服务中注入服务。至于你的具体问题(在实体的prePersist中使用config),答案是如果你需要访问配置,prePersist回调不是执行逻辑的正确位置,因为实体不应该知道属于的任何东西。更高的软件层(即服务/配置层)。

您可以在此处找到更多解释:How to use the translator service inside an Entity?

答案 1 :(得分:0)

我自己使用定制的ConfigClass的方法怎么样?然后,您应该将其添加到所需的位置并使用它。

namespace Your\Namespace\YourConfig;

class YourConfig {

  private $energy_config;

  public function __construct() {
    $this->energy_config = array(
        'update_frequency'   => 10,
        'energy_added'       => 10,
        'energy_maximum'     => 200,
    );
  }

}

稍后如果您需要energy_config值,只需添加所需的类使用语句:

use Your\Namespace\YourConfig;
...

public function foo() {
  $config = new YourConfig();
  // use your config values
}

这只是我的想法,希望它有所帮助,直到有人提供真正伟大的解决方案:)