在Zend Framework 2.2.0中,添加了一些新的抽象工厂。我想配置一个数据库记录器,但我不确定如何做到这一点。该链接给出了以下配置流记录器的示例:
'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'Db
构造函数时,它需要传递一个适配器实例。我不知道如何做到没有工厂,因为我的数据库适配器是使用抽象工厂本身;Zend'Db'Adapter'AdapterServiceFactory
。这似乎要求我访问配置文件中的服务管理器以获取数据库适配器,以便将其注入db写入器。我甚至不确定这是否可能。
我可以创建一个定制工厂,但是我喜欢这些一致的抽象工厂的想法;我只是不知道如何使用它们。
您还需要启用创建日志记录器的抽象工厂,例如使用以下配置
// ... snip ...
'service_manager' => array(
'abstract_factories' => array(
'Zend'Log'LoggerAbstractServiceFactory',
),
)
// ... snip ...