php - ZF2 : configuring new abstract factories

标签 php zend-framework2

在 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。这似乎需要我访问配置文件中的服务管理器以获取数据库适配器,以便将其注入(inject)数据库编写器。我不确定这是否可能。

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

最佳答案

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

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

关于php - ZF2 : configuring new abstract factories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16882644/

相关文章:

php - 将 isset 与 mysql_real_escape_string 结合使用

php - 如何使用 LEFT JOIN mysql 查询轻松分割 PHP 中的结果?

PHP最快的二维数组搜索算法

php - CakePHP 使用 3 个模型和 saveAll

php - Javascript 显示/隐藏的困难

service - ZF2 通过附加参数从服务管理器获取服务

zend-framework2 - ZF2验证-如果另一个元素不为空,则为必填字段

testing - ZF2 测试 - serviceManager 忽略的模拟对象

zend-framework2 - Zend Framework 2 - BjyAuthorize 总是拒绝访问

php - 如何包含zend框架?