【问题标题】:Global access to symfony2's configuration values全局访问 symfony2 的配置值
【发布时间】:2012-02-09 10:30:47
【问题描述】:

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

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

难道没有获取配置类或内核的静态方法吗?

【问题讨论】:

    标签: php symfony config


    【解决方案1】:

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

    你可以在这里找到更多解释:How to use the translator service inside an Entity?

    【讨论】:

      【解决方案2】:

      我自己使用定制的 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
      }
      

      这只是我的想法,希望在有人给出真正出色的解决方案之前有所帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多