2016-11-10 1 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에서 모듈 "젠드 \ DB를"(추가 젠드 \ DB를 사용하기 :

예를 들어 나는 BjyProfiler를 사용하고이 같은 1 개 구성을 만들려면 예외). 문제는 "Zend \ Db \ Adapter \ Adapter"를 가져오고 싶을 때 "Database \ Adapter \ MainAdapterFactory"를 절대 통과하지 못하는 이유입니다. 기본 어댑터를 사용합니다. 나는 global.php, local.php에 factory 선언문을 두는 것을 좋아하며 작동하지 않는다. 왜 이런 일이 일어나는 걸까요? 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

관련 문제