2013-03-06 83 views
0

我似乎无法理解如何访问我在控制器中global.php中的自定义配置数据。我正在使用zf2。每当我尝试:如何在Zend框架中访问globa.php中的自定义配置信息2

$config = $this->getServiceLocator()->get('config'); 

我得到以下错误:

Fatal error: Call to a member function get() on a non-object 

我知道它是与服务管理器/定位器,但我很新的ZF2和整个DI精神。我完全陷入困境,需要一个简单的例子来说明如何配置SM以允许访问它来提取我的自定义配置值。下面是我的module.config.php我不知道应该把什么放在空数组中。我没有使用任何数据库。我想在global.php中存储ldap选项,我可以在控制器中访问并传递给模型以创建新的ldap实例。

<?php 
class Module 
{ 
    public function getConfig() 
    { 
     return include __DIR__ . '/config/module.config.php'; 
    } 

    public function getAutoloaderConfig() 
    { 
     return array(
      'Zend\Loader\StandardAutoloader' => array(
       'namespaces' => array(
        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
       ), 
      ), 
      'Zend\Loader\ClassMapAutoloader' => array(
       __DIR__ . '/autoload_classmap.php', 
      ), 
     ); 
    } 

    public function getServiceConfig() 
    { 
     return array(); 
    } 
} 

回答

0

在构造函数中访问getServiceConfig方法会产生一个空对象。我移动了

$config = $this->getServiceLocator()->get('config'); 

给get方法的控制器,并能够访问我需要的配置数据。

+0

啊,你在构造函数中调用它是缺失信息的一个重要部分Rodney :)服务,包括ServiceManager本身是通过初始化方法注入的,并且在对象实例化后发生。在构造函数中无法访问它将被视为预期的行为。 – Crisp 2013-03-07 15:08:58

相关问题