【问题标题】:ZF2: configuring new abstract factoriesZF2:配置新的抽象工厂
【发布时间】:2013-08-06 18:23:58
【问题描述】:

在 Zend Framework 2.2.0 中,一堆new abstract factories have been added。我想配置一个数据库记录器,但我不知道该怎么做。该链接给出了以下配置流记录器的示例:

'log' => array(
    'Application\Log' => array(
        'writers' => array(
            array(
                'name'     => 'stream',
                'priority' => 1000,
                'options'  => array(
                    'stream' => 'data/logs/app.log',
                ),
            ),
        ),
    ),
),

我尝试将配置复制到config/global.php,并且我还尝试将其嵌套在service_manager 键下。它说我应该能够直接从服务管理器获取记录器,但我收到一个错误,说它无法创建Application\Log 的实例。我在这里误解了什么吗?应该在哪里添加配置?

另外,在我的具体示例中,我想使用数据库编写器。这是如何以与上述类似的风格配置的(即使用数组)?在查看Zend\Writer\Dbconstructor 时,需要传递一个适配器实例。我不确定如何在不创建工厂的情况下做到这一点,因为我的数据库适配器本身正在使用抽象工厂; Zend\Db\Adapter\AdapterServiceFactory。这似乎需要我访问配置文件中的服务管理器以获取数据库适配器,以便将其注入数据库编写器。我不确定这是否可能。

我可以做一个自定义工厂就好了,但我喜欢这些一致的抽象工厂的想法;我只是对如何使用它们感到困惑。

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    您还需要启用创建记录器的抽象工厂,例如使用以下配置

    // ... snip ...
    'service_manager' => array(                                                 
        'abstract_factories' => array(                                          
            'Zend\Log\LoggerAbstractServiceFactory',                            
        ),                                                                      
    )
    // ... snip ...
    

    【讨论】:

      猜你喜欢
      • 2016-03-31
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多