2016-04-08 9 views
-1

Zend Framework 2'de çoklu veritabanlarını doktrin 2 ile nasıl yapılandırabilir (ve kullanabilirsiniz)? Şu anda bu benim yerel.php:Birden çok veritabanını zf2'de doctrine2 ile yapılandırın

return array(
'doctrine' => array(
    'connection' => array(
     // default connection name 
     'orm_default' => array(
      'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
      'params' => array(
       'host'  => 'localhost', 
       'port'  => '3306', 
       'user'  => 'root', 
       'password' => '', 
       'dbname' => 'data1', 
       'charset' => 'utf8', 
       'driverOptions' => array(
         1002=>'SET NAMES utf8' 
       ) 
      ) 
     ) 
    ) 
), 

);

Ama ikinci bir ekleme yolu göremiyorum.

+0

Tüm yayınlarınızı okudum, hiçbir şey aramıyorsunuz ve sizin için sağladığımız kodu yapıştırın, beyninizi bağlayıp düşünmeniz daha iyi olur. Aksi halde, her bir hata iletisini öğrenmeden stackoverflow'a gönderirsiniz bir şey ... – Hooli

cevap

0

Belki de bu örnek size yolu gösterebilir, bu benim uygulamamda iki veritabanını nasıl yapılandırdım, ancak Doctrine kullanmıyorum.

PS:

DBs yapılandırma

return array(
    'doctrine' => array(
     'connection1' => array(
      // default connection name 
      'orm_default' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
       'params' => array(
        'host'  => 'localhost', 
        'port'  => '3306', 
        'user'  => 'root', 
        'password' => '', 
        'dbname' => 'data1', 
        'charset' => 'utf8', 
        'driverOptions' => array(1002 => 'SET NAMES utf8') 
       ) 
      ) 
     ), 

     'connection2' => array(
      // default connection name 
      'orm_default' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
       'params' => array(
        'host'  => 'localhost', 
        'port'  => '3306', 
        'user'  => 'root', 
        'password' => '', 
        'dbname' => 'data2', 
        'charset' => 'utf8', 
        'driverOptions' => array(1002 => 'SET NAMES utf8') 
       ) 
      ) 
     ) 
    ), 
); 

Sonra DB connection2 bağlanmak için connection1 DB bağlanmak bir DbAdapterFactory ve başka fabrika oluşturmak için gereken Tabii isimleri sadece örnek ve mümkün daha iyi olanları kullan.

class Adapter1Factory implements FactoryInterface 
{ 
    /** 
    * Create DbAdapter 
    * 
    * @param ServiceLocatorInterface $serviceLocator 
    * @return DbAdapter 
    */ 
    public function createService(ServiceLocatorInterface $serviceLocator) 
    { 
     $config = $serviceLocator->get('config'); 
     $configDb1 = $config['connection1']; 
     $adapter = new \Zend\Db\Adapter\Adapter($configDb1); 

     return $adapter; 
    } 
} 

class Adapter2Factory implements FactoryInterface 
{ 
    /** 
    * Create DbAdapter 
    * 
    * @param ServiceLocatorInterface $serviceLocator 
    * @return DbAdapter 
    */ 
    public function createService(ServiceLocatorInterface $serviceLocator) 
    { 
     $config = $serviceLocator->get('config'); 
     $configDb2 = $config['connection2']; 
     $adapter = new \Zend\Db\Adapter\Adapter($configDb2); 

     return $adapter; 
    } 
} 

Şimdi belirli DB'ye bağlanmak istediğinizde yalnızca belirli AdapterFactory'yi kullanın.

+0

Ben doktrin kullanımı gerekir doktrin üzerinde bunu nasıl yapabilirim ve iki modül 1 ve aynı modülde veri 2 için iki varlık nasıl üretebilirim Teşekkür peşin –

İlgili konular