Symfony2:连接到其他数据库,没有所有附加功能?

我正在寻找连接到另一个数据库来运行一些任意查询,但不想使用实体和存储库等来描述数据. Symfony不会“拥有”这些数据或管理任何有关它的信息.我只是在寻找有关如何:

>将连接参数放在我的config.yml文件(和parameters.yml)中
>使用Symfony组件(Doctrine?)连接它来运行预准备语句.

我能找到的唯一类似的问题是Temporary Connection to External Database with Symfony/Doctrine,但这似乎适用于Symfony 1,因为Sytrfony 2中不存在Doctrine_Manager.

最佳答案
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连接对象的瘦包装器.

http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html

显示如何使用连接.基本上与PDO对象相同.

您也可以使用PDO对象本身创建服务.我没有一个方便的例子,但它很容易做到.这将完全消除对Doctrine 2的需求.

转载注明原文:Symfony2:连接到其他数据库,没有所有附加功能? - 代码日志