2012-02-09 10 views
0

どのようにしてアプリケーションのどこからでも設定値(カスタム)を取得できますか?symfony2の設定値へのグローバルなアクセス

私はエンティティのメソッドprePersistのコントローラの外でそれをやりたいです。依存性注入もここでも非論理的です。

コンフィグクラスやカーネルを静的に取得する方法はありませんか?

答えて

0

依存性注入は、コンフィグレーションを使用するための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 
} 

をこれが私の考えです、誰かが本当に素晴らしいソリューション:)

を与えるまでそれが役に立てば幸い
関連する問題