Erzeugen von Lehren 2 mit mehreren databaseverbindungen in Zend Framework 2

Für eine Webanwendung muss ich mit 3 separaten databaseen arbeiten:

  • MySQL für alle Anwendungslogik, wie Login
  • MSSQL server zum Einfügen von datasätzen
  • Oracle-server zum Einfügen von datasätzen

Jetzt habe ich viele Tutorials und Handbücher gelesen, um diese databaseen zu konfigurieren, also sieht es jetzt so aus:

doctrine.global.php

return array( 'doctrine' => array( 'connection' => array( 'orm_default' => array( 'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 'params' => array( 'host' => '123.123.123.123', 'port' => '3306', 'dbname' => 'db_name', ), ), 'orm_oracle' => array( 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'params' => array( 'host' => '321.321.321.321', 'port' => '1521', 'dbname' => 'something', 'driver' => 'oci8', 'servicename' => 'something', ), ), 'orm_microsoft' => array( 'driverClass' => 'Doctrine\DBAL\Driver\SQLSrv\Driver', 'params' => array( 'host' => '231.231.231.231', 'port' => '1433', 'dbname' => 'something', 'driver' => 'sqlsrv', ), ), ) ) ); 

doctrine.local.php *

 return array( 'doctrine' => array( 'connection' => array( 'orm_default' => array( 'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 'params' => array( 'user' => 'brportal', 'password' => '27607097b4', ), ), //Alternative DB connection 'orm_oracle' => array( 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'params' => array( 'user' => 'joost', 'password' => '4b58tL8DFv7G', ), ), 'orm_microsoft' => array( 'driverClass' => 'Doctrine\DBAL\Driver\SQLSrv\Driver', 'params' => array( 'user' => 'joost', 'password' => '4b58tL8DFv7G', ), ), ), 'entitymanager' => array( 'orm_default' => array( 'connection' => 'orm_default', 'configuration' => 'orm_default', ), 'orm_oracle' => array( 'connection' => 'orm_oracle', 'configuration' => 'orm_oracle', ), 'orm_microsoft' => array( 'connection' => 'orm_microsoft', 'configuration' => 'orm_microsoft', ), ), // Use array cache locally, also auto generate proxies on development environment. 'configuration' => array( 'orm_default' => array( 'metadata_cache' => 'array', 'query_cache' => 'array', 'result_cache' => 'array', 'hydration_cache' => 'array', 'generate_proxies' => true, ), 'orm_oracle' => array( 'metadata_cache' => 'array', 'query_cache' => 'array', 'result_cache' => 'array', 'hydration_cache' => 'array', 'generate_proxies' => true, ), 'orm_microsoft' => array( 'metadata_cache' => 'array', 'query_cache' => 'array', 'result_cache' => 'array', 'hydration_cache' => 'array', 'generate_proxies' => true, ), ), ) ); 

module.php

 'doctrine' => array( 'driver' => array( __NAMESPACE__ . '_driver' => array( 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 'cache' => 'array', 'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities') ), 'orm_default' => array( 'drivers' => array( __NAMESPACE__ . '\Entities' => __NAMESPACE__ . '_driver' ) ), 'oracle_driver' => array( 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 'cache' => 'array', 'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities\Oracle') ), 'orm_oracle' => array( 'drivers' => array( __NAMESPACE__ . '\Entities\Oracle' => 'oracle_driver' ) ), 'microsoft_driver' => array( 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 'cache' => 'array', 'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities\Microsoft') ), 'orm_microsoft' => array( 'drivers' => array( __NAMESPACE__ . '\Entities\Microsoft' => 'microsoft_driver' ) ) ) ) 

Aber jetzt möchte ich wirklich einen einfachen path haben, um die Mssql- und Oracle-databaseentitäten (Annotationen) zu erzeugen. Es hat bereits mit der MySQL-database gearbeitet, aber ich kann nicht herausfinden, wie man eine databaseverbindung mit doctrine-module orm:convert-mapping .

Ich habe mich gefragt, ob mir jemand helfen kann?

Vielen Dank im Voraus Jungs!

ps: Ich habe schon gelesen: Zend Framework 2 und Doctrine 2 – configuration für mehrere databaseen

Die untere Zeile ist, dass es nicht im ZF2 DoctrineORM module unterstützt wird. Es gibt eine Feature-Anfrage für sie auf dem Repo .

In der Zwischenzeit gibt es ein module, das ein Shim-module zur Verfügung stellt, das die Option -em https://github.com/SwissEngine/Doctrine-modulee-Extension hinzufügt