我正在使用symfony 1.4开发一个有点复杂的AJAX应用程序。这将是非常有帮助的,我使用一些自定义属性为我的模块,我在模块中定义。Yml 配置文件,例如:
all:
first_property: value1
second_property: value2
等。
这个属性将主要用于格式化javascript生成的视图,使用从我的模块返回的JSON值。例如,在我的主模块(用于渲染基视图)控制器,我想使用这样的东西:
// In frontend/modules/main
$property sfConfig::get('mod_somemodule_someproperty');
它不会工作,因为默认情况下模块的属性不能在模块外通过sfConfig::get()方法访问。
我的问题是:是否有可能以某种方式访问这些属性?
如果没有-如果有人建议我可以为我的模块指定一些循环属性并从外部控制器访问它们的不同方式,我会非常感激。
谢谢。
如果你想在模块之外访问模块配置,为什么不把配置变成应用级配置呢?如果你想在应用之间共享应用级配置,那么配置应该是项目级的。
我想你对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
key与选定的环境合并。
每当我想在模块外共享任何代码时,我就把它放在插件中,任何模块都可以从中获得它。我不知道这是否适用于属性,但我怀疑可以。