Ниже мы представим содержимое файла 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
, который является соединением по умолчанию.
driverClass
предоставляет имя класса для использования в качестве драйвера БД. Так
как мы используем базу данных MySQL, мы указываем имя класса Doctrine\DBAL\Driver\PDOMySql\Driver
. Для справки в таблице 12.1 приведены несколько других часто используемых драйверов. Каждый класс драйвера поддерживает свой набор параметров, поэтому, пожалуйста, обратитесь к коду конкретного драйвера (и соответствующей документации) за дополнительной информацией.
Ключ params
содержит параметры соединения:
host
может быть либо доменным именем, либо IP-адресом сервера БД;user
- имя пользователя MySQL с правами доступа к базе данных;password
- секретное слово для имени пользователя;dbname
- имя базы данных.Драйвер | Описание |
---|---|
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
и заполнить его параметрами подключения.