【发布时间】:2013-04-11 14:03:33
【问题描述】:
我想/必须管理ZF1 style 中的一些设置,并为视图提供有关当前环境的信息。
/config/application.config.php
return array(
...
'module_listener_options' => array(
...
'config_glob_paths' => array('config/autoload/{,*.}{global,local}.php')
)
);
/config/autoload/env.local.php
return array(
// allowed values: development, staging, live
'environment' => 'development'
);
在一个通用视图脚本中,我可以通过控制器执行此操作,因为控制器可以访问服务管理器,因此可以访问我需要的所有配置:
class MyController extends AbstractActionController {
public function myAction() {
return new ViewModel(array(
'currentEnvironment' => $this->getServiceLocator()->get('Config')['environment'],
));
}
}
是否也可以直接在公共视图中获取配置?
如何访问布局视图脚本 (/module/Application/view/layout/layout.phtml) 中的配置?
【问题讨论】:
-
我建议使用配置注入的视图助手,在我刚刚在这里给出的答案中将模型类替换为 config -> stackoverflow.com/questions/16082529/…,并使用您的助手作为代理
-
绝对是@Crisp 提供的方法,但是对于您为什么真的需要它们会有很大的疑问。视图应该呈现,没有别的,它甚至不应该为任何单个配置而烦恼。那是控制器的工作。你到底想做什么?
-
你当然可以同时使用这两种方法,但我倾向于按照 Sam 的建议将其置于视野之外 :)
-
@Sam 我想允许在开发/登台环境中显示网络分析 JS。
-
绝对是 viewHelper
displayAnalytics()的解决方案 - viewHelper 将通过 ServiceManager 访问配置,然后输出空字符串或功能分析代码。请参阅清晰提供的答案;)
标签: configuration zend-framework2 production-environment application-settings