A free and open-source book on ZF3 for beginners


12.4. Указание параметров подключения к базе данных

Ниже мы представим содержимое файла autoload/local.php веб-приложения Blog. Этот файл конфигурации содержит настройки подключения к базе данных на уровне приложения для MySQL-БД blog, которую мы создали ранее в этой главе:

Это соединение используется всеми модулями приложения. Если вы хотите создать соединение для определенного модуля, вместо этого стоит использовать файл module.config.php.

<?php
use Doctrine\DBAL\Driver\PDOMySql\Driver as PDOMySqlDriver;

return [
    'doctrine' => [
        'connection' => [
            'orm_default' => [
                'driverClass' => PDOMySqlDriver::class,
                'params' => [
                    'host'     => '127.0.0.1',                    
                    'user'     => 'blog',
                    'password' => '<password>',
                    'dbname'   => 'blog',
                ]
            ],            
        ],        
    ],
];

В этом фрагменте находятся ключ doctrine и подключ connection. Подключ connection в свою очередь содержит подключ orm_default, который является соединением по умолчанию.

Для справки в таблице 12.1 приведены несколько других часто используемых драйверов. Каждый класс драйвера поддерживает свой набор параметров, поэтому, пожалуйста, обратитесь к коду конкретного драйвера (и соответствующей документации) за дополнительной информацией.

Таблица 12.1. Классы часто используемых драйверов БД
Драйвер Описание
Doctrine\DBAL\Driver\PDOSqlite\Driver Драйвер SQLite, использующий PHP-расширение PDO.
Doctrine\DBAL\Driver\PDOMySql\Driver Драйвер MySQL, использующий PHP-расширение PDO.
Doctrine\DBAL\Driver\PDOOracle\Driver Драйвер Oracle, использующий PHP-расширение PDO.
Doctrine\DBAL\Driver\PDOPgSql\Driver Драйвер PostgreSQL, использующий PHP-расширение PDO.
Doctrine\DBAL\Driver\PDOSqlsrv\Driver Драйвер MS SQL Server, использующий PHP-расширение PDO.

Так как файл autoload/local.php содержит параметры для определенной среды, в системе контроля версий вы храните его "шаблон распространения" local.php.dist. Затем каждый разработчик из вашей команды переименовывает файл local.php.dist в local.php и вводит собственный пароль вместо плейсхолдера. Файл local.php не стоит хранить под контролем версий, так как вы можете не хотеть, чтобы другие люди в вашей команде (или другие люди с доступом к вашему репозиторию кода) видели ваш пароль.

Что если мне нужно несколько соединений с БД?

Вы легко можете добавить соединения, вставив другие ключи под ключом orm_default. Предположим, например что у вас есть другая база данных, предназначенная для тестирования. Чтобы оповестить Doctrine об этой базе данных, нужно создать подключ orm_test под ключом orm_default и заполнить его параметрами подключения.


Top