2011-09-12 11 views
1

symfony 1.4を使用して、やや複雑な、主にAJAXアプリケーションを開発しています。他のモジュールからsymfonyモジュール設定にアクセスする

all: 
    first_property: value1 
    second_property: value2 

など

このプロパティは使用されるでしょう:私は例えば、私はmodule.ymlファイルの構成ファイルで定義された私のモジュールのためのいくつかのカスタムプロパティを使用することは非常に参考になります主に私のモジュールから返されたJSON値を使用してjavascriptによって生成されたビューを整形します。例えば ​​- (ベース・ビューをレンダリングするために使用される)私のメインモジュール、私はそのような何かを使用していたコントローラで:モジュールのデフォルトプロパティでモジュールの外にアクセスできないため

// In frontend/modules/main 
$property sfConfig::get('mod_somemodule_someproperty'); 

それは動作しません。 sfConfig :: get()メソッドを使用します。

私の質問は:

どういうわけかこれらのプロパティにアクセスできますか?

もしそうでなければ、誰かが私のモジュールのいくつかの反復属性を指定して、外部のコントローラからそれらにアクセスする方法を示唆してくれたことに本当に感謝します。

ありがとうございました。

答えて

1

あなたはapp.ymlの設定に精通していると思いますか?選択したモジュールだけでなく、アプリケーション全体で構成設定を保存するために使用されます。これは、より一般的な設定を保存する場所です...

しかし、それは言った。 sfYamlクラスを使用してmodule.ymlを開きます。このような何か(擬似コード)

$moduleName = 'module'; 
$path = sfConfig::get('sf_app_dir').'/modules/'.$moduleName.'/config/module.yml'; 
$moduleConfig = sfYaml::load($path); 
$property = $moduleConfig['all']['first_property']; 

必要に応じて、あなたが選択した環境でのアイテムallキーをマージすることができます。

2

モジュール外のモジュール設定にアクセスするには、設定をアプリレベル設定にしないでください。 アプリ間でアプリレベルの設定を共有したい場合は、設定をプロジェクトレベルにする必要があります。

+0

はい、私は、アプリケーション全体で設定を指定できることを知っています。基本的にはモジュールレベルであるため、モジュールごとに設定する方が適切です(またはエレガントな)。たとえば、_visible_fields_という名前のプロパティで、どのモデルフィールドをリストビューに表示するかを定義します。 – Przemek

+0

モジュール間でモジュールが必要な場合は、モジュールレベルで適切ではありません。 – Gerry

+0

だから私はアプリレベルの設定を行った。あなたの返事をありがとうございました。 – Przemek

0

私はモジュールの外にあるコードを共有したいと思ったときに、プラグインに入れました。そこからモジュールを得ることができます。私はこれがプロパティのために働くのか分からないが、私はそう思う。

関連する問題