2016-11-10 4 views
1

データベースカスタムファクトリで異常な動作があります。zf3カスタムデータベースファクトリを適用したくない

'db' => array(
    'driver' => 'Pdo', 
    'dsn' => 'mysql:dbname=framework;host=localhost', 
    'username' => 'root', 
    'password' => '', 
    'driver_options' => array(
     PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' 
    ), 
), 
'service_manager' => array(
    'factories' => array(
     'Zend\Db\Adapter\Adapter' => 'Database\Adapter\MainAdapterFactory', 
    ), 
), 

だから私は私が得るそれ以外modules.config.phpでモジュール「Zendの\ DBの」(追加のZend \ Dbとを使用する:

は、例えば私がBjyProfilerを使用して、このような1つの設定を作成したいです例外)。問題は、 "Zend \ Db \ Adapter \ Adapter"を取得するときに、 "Database \ Adapter \ MainAdapterFactory"を通過することがなく、なぜかわからないということです...デフォルトアダプタを使用しています。私はglobal.php、local.phpにファクトリ宣言を入れてもらうのが面倒だし、うまくいきません。なぜこうなった? zf2ではこのコードは大丈夫です...

私は作曲家を使用します。

アップデート:私は私の最後の設定では:

'service_manager' => 
    array (size=5) 
     'aliases' => 
      array (size=11) 
      ... 
      'Zend\Db\Adapter\Adapter' => string 'Zend\Db\Adapter\AdapterInterface' (length=32) 
      ... 
     'factories' => 
      array (size=19) 
      ... 
      'Zend\Db\Adapter\AdapterInterface' => string 'Zend\Db\Adapter\AdapterServiceFactory' (length=37) 
      ... 
      'Zend\Db\Adapter\Adapter' => string 'Database\Adapter\Factory\MainAdapterFactory' (length=43) 
     'abstract_factories' => 
      array (size=3) 
      ... 
      1 => string 'Zend\Db\Adapter\AdapterAbstractServiceFactory' (length=45) 
      ... 
    ... 

私はそれが別名'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterInterface'をどこから来るのか知らないが、私は、これは問題だと思います。

答えて

0

'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterInterface'は、フレームワークに由来します。問題はそうだった

'service_manager' => array(
    'factories' => array(
     'Zend\Db\Adapter\MyAdapter' => 'Database\Adapter\MainAdapterFactory', 
    ), 
), 
+0

は、私はあなたがあなた自身のアダプタで、元'Zend\Db\Adapter\Adapter'を(のはそれMyAdapterを呼びましょう)、およびカスタムアダプタを使用し拡張することを提案しました。私は答えを加えるのを忘れた。ありがとう! – Botman

関連する問題