4

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 ライターに挿入するために、構成ファイル内のサービス マネージャーにアクセスしてデータベース アダプターを取得する必要があるようです。それが可能かどうかはわかりません。

カスタム ファクトリは問題なく作成できますが、これらの一貫した抽象ファクトリのアイデアが気に入っています。私はそれらをどのように使用するかについて混乱しています。

4

1 に答える 1

2

また、ロガーを作成する抽象ファクトリを有効にする必要があります。たとえば、次の構成を使用します。

// ... snip ...
'service_manager' => array(                                                 
    'abstract_factories' => array(                                          
        'Zend\Log\LoggerAbstractServiceFactory',                            
    ),                                                                      
)
// ... snip ...
于 2013-08-06T10:23:58.613 に答える