Doctrine为每个数据库连接使用一个实体管理器。所以你可以连接到多个数据库,但你不能链接这些实体。从Doctrine或数据库内部对实体施加约束的唯一方法是如果它们在同一个数据库中。
您可以自己却强制约束和使用两个独立的实体管理器 但是我不会推荐这
数据库连接细节应贮存在您的/config/autoload/local.php
或/config/autoload/{ownname}.local.php
和ownname例如,您可以选择“教义”
doctrine.local.php
<?php
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'configuration' => 'orm_default',
'driverClass' =>'Doctrine\DBAL\Driver\PDOMySql\Driver',
'eventmanager' => 'orm_default',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => '{username}',
'password' => '{password}',
'dbname' => '{db}',
),
),
),
),
);
的一般原则设置像您的实体位于阅读类元数据可以放在/config/autoload/global.php
文件或以global.php
结尾的文件中,就像之前的本地文件一样,或者您可以将其存储在您的模块配置文件中
的实体应存放你的模块放在一个目录Entity
,如: 根/模块/ {模块名}/src目录/ {模块名} /实体/
为如何存储他们看到:Doctrine Documentation
如果您使用实体多个模块,最好是做一个通用模块,并把那作为一个依赖与所有需要这种实体
你可以改变自己的数据库,用于测试的环境或者使用一个模块的配置文件之间chnaging,如: Config Module这是通过谁做ZF2
这是我现在使用的配置人民作出。它不适用于多个数据库,因为* {db} *仅设置为* 1 * db。这也不适用于数据库的前缀。 –
如果你创建一个抽象工厂,你可以在servicemanager中为你的服务添加前缀,并根据你提供的配置创建尽可能多的适配器 –