2012-02-09 59 views
0

如何從應用程序的任何位置獲取配置值(自定義)?全局訪問symfony2的配置值

我想在一個實體的方法prePersist中的控制器之外執行它。依賴注入聽起來也不合邏輯。

是不是有一些獲取配置類或內核的靜態方法..?

回答

0

依賴注入是Symfony 2使用配置的方式:爲您的邏輯創建服務,在服務中注入配置並使用OO邏輯在其他服務中注入服務。至於你的具體問題(使用實體的prePersist中的配置),答案是如果你需要訪問配置,prePersist回調不是執行你的邏輯的正確位置,因爲實體不應該知道屬於更高軟件層的任何東西(即服務/配置層)。

你可以在這裏找到一些更多的解釋:How to use the translator service inside an Entity?

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 
} 

這只是我的想法,希望它可以幫助別人拿給一個真正偉大的解決方案:)