Как Doctrine определяет подключение к базе данных по умолчанию?

#php #zend-framework #doctrine #database-connection #doctrine-query

#php #zend-framework #doctrine #database-connection #doctrine-запрос

Вопрос:

Я использую Zend 1.11 с Doctrine 1.1.4. Мое приложение использует несколько баз данных.

В моем bootstrap.php файл, я настроил детали для двух баз данных;

    $dbs = array(
        'global_users'=>array(
            'adapter' => 'mysqli',
            'params' => array(
                'host'     => 'localhost',
                'username' => 'root',
                'password' => '',
                'dbname'   => 'global_users',
                'charset'   => 'UTF8',
            ),
        ),
        'search_landscape'=>array(
            'adapter' => 'mysqli',
            'params' => array(
                'host'     => 'localhost',
                'username' => 'root',
                'password' => '',
                'dbname'   => 'search_landscape',
                'charset'   => 'UTF8',
            ),
        ),
    );
  

Я сгенерировал классы модели Doctrine для второй базы данных search_landscape. Я еще не использовал базу данных global_users в приложении, в то время как я выполнил несколько запросов Doctrine ко второй базе данных search_landscape, которая пока работает как ожидалось.

При выполнении запросов Doctrine я не определяю явное подключение к базе данных, т. Е. она использует соединение по умолчанию, как Doctrine узнает, к какой базе данных подключаться?

Когда я начну использовать другие базы данных в приложении, я понимаю, что мне придется явно определить подключение Doctrine для каждой из них, однако прямо сейчас я еще не определил никаких явных подключений, Doctrine, похоже, знает, к какой БД подключаться из двух.

Ценю помощь.

Ответ №1:

 Doctrine_Manager::getInstance()->getCurrentConnection();
  

Doctrine_Manager — это одноэлементный объект, вы можете установить другие подключения по умолчанию, используя их имена. Смотрите документацию по API Doctrine_Manager для получения дополнительной информации.