我正在寻找连接到另一个数据库来运行一些任意查询,但不想使用实体和存储库等来描述数据.Symfony不会"拥有"这些数据或管理任何有关它的信息.我只是在寻找有关如何:
我能找到的唯一类似的问题是使用Symfony/Doctrine临时连接到外部数据库,但这似乎适用于Symfony 1,因为Doctrine_Manager
Symfony 2中不存在.
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
Run Code Online (Sandbox Code Playgroud)
这将产生一个名为:doctrine.dbal.customer_connection的服务,您可以从服务容器中提取该服务.
DBAL连接是标准PHP PDO连接对象的瘦包装器.
显示如何使用连接.基本上与PDO对象相同.
您也可以使用PDO对象本身创建服务.我没有一个方便的例子,但它很容易做到.这将完全消除对Doctrine 2的需求.