Symfony2中的多个数据库

时间:2014-04-27 15:58:02

标签: php mysql sql database symfony

我有一个有两个数据库连接的应用程序。第一个数据库是应用程序自己的数据库,第二个数据库来自另一个应用程序(同一个服务器,不同的子域)。

对于第二个数据库上的SQL查询,我使用服务。

services.yml

login.company:
    class: JP\CoreBundle\Service\Login\CompanyService
    arguments:
        em: "@doctrine.orm.login_entity_manager"

CompanyService.php

class CompanyService {    
    private $_em;

    public function __construct(EntityManager $em){
        $this->_em = $em;
    }

    public function getSomethingBySomething($something){ // Intentionally obscured method and parameter name
        $conn = $this->_em->getConnection();

        $sql = ''; // Intentionally removed SQL query

        $stmt = $conn->prepare($sql);
        $stmt->bindParam('something', $something); // Intentionally obscured real name to something
        $stmt->execute();

        return ($stmt->rowCount() == 1) ? $stmt->fetch(Query::HYDRATE_ARRAY) : false;
    }
}

config.yml

doctrine:
    dbal:
        default_connection: analysis
        connections:
            analysis:
                driver:   "%database_driver1%"
                host:     "%database_host1%"
                port:     "%database_port1%"
                dbname:   "%database_name1%"
                user:     "%database_user1%"
                password: "%database_password1%"
                charset:  UTF8
            login:
                driver:   "%database_driver2%"
                host:     "%database_host2%"
                port:     "%database_port2%"
                dbname:   "%database_name2%"
                user:     "%database_user2%"
                password: "%database_password2%"
                charset:  UTF8
    orm:
        default_entity_manager: analysis
        entity_managers:
            analysis:
                connection: analysis
                mappings:
                    JPCoreBundle: ~
            login:
                connection: login
        auto_generate_proxy_classes: "%kernel.debug%"

问题:在Symfony2环境中正确使用多个数据库吗?它可以以某种方式改进吗?

1 个答案:

答案 0 :(得分:1)

  

这是否正确使用Symfony2中的多个数据库   环境?

这是在Symfony2中正确使用多个数据库。

  

能以某种方式改进吗?

与Symfony2中多个数据库的使用没有直接关系的唯一改进(如注释中所述)是使用DQL或QueryBuilder而不是直接使用连接。