我希望连接到另一个数据库以运行一些任意查询,但不想使用实体和存储库等来描述数据。 Symfony不会“拥有”这些数据或管理任何有关它的信息。我只是在寻找有关如何:
的建议我能找到的唯一类似问题是Temporary Connection to External Database with Symfony/Doctrine,但这似乎适用于Symfony 1,因为Symfony 2中不存在Doctrine_Manager
。
答案 0 :(得分:7)
http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html
显示如何设置多个Doctrine 2 DBAL连接(忽略实体管理器部分)。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
customer:
driver: "%database_driver2%"
host: "%database_host2%"
port: "%database_port2%"
dbname: customer
user: "%database_user2%"
password: "%database_password2%"
charset: UTF8
这将产生一个名为:doctrine.dbal.customer_connection的服务,您可以从服务容器中提取该服务。
DBAL连接是标准PHP PDO连接对象的瘦包装。
显示如何使用连接。基本上与PDO对象相同。
您也可以使用PDO对象本身创建服务。我没有一个方便的例子,但它很容易做到。这将彻底消除对Doctrine 2的需求。