Класс ConnectionManager
Управляет и загружает экземпляры Connection
Предоставляет интерфейс для загрузки и создания объектов подключения. Выступает в качестве реестра для подключений, определенных в приложении.
Предоставляет интерфейс для загрузки и перечисления подключений, определенных в config/app.php
- Cake\Datasource\ConnectionManager использует Cake\Core\StaticConfigTrait
Краткое описание свойств
- Карта псевдонимов подключений.
array - Массив, сопоставляющий схемы URL с полными именами классов драйверов.
array - ConnectionRegistry, используемый менеджером.
Унаследованные свойства
Краткое описание методов
- Устанавливает один или несколько псевдонимов подключений.
- Настраивает новый объект подключения.
- Удаляет псевдоним.
- Получает подключение.
- Разбирает DSN в корректную конфигурацию подключения.
Подробное описание методов
alias()source public static
alias( string $alias , string $source )
Устанавливает один или несколько псевдонимов подключений.
Псевдонимы подключений позволяют переименовать активные подключения, не перезаписывая подключение с псевдонимом. Это наиболее полезно в наборе тестов для замены подключений их тестовым вариантом.
Определенные псевдонимы будут иметь приоритет над обычными именами подключений. Например, если вы установили псевдоним «default» на «test», получение «default» всегда вернёт подключение «test», пока псевдоним определён.
Вы можете удалить псевдонимы с помощью ConnectionManager::dropAlias().
Использование
// Make 'things' resolve to 'test_things' connection
ConnectionManager::alias('test_things', 'things'); Параметры
- строка
$alias - Псевдоним для добавления. Получение $source вернёт $alias при загрузке с помощью get.
- строка
$source - Подключение, которому необходимо добавить псевдоним.
Исключения
Cake\Datasource\Exception\MissingDatasourceConfigExceptionПри установке псевдонима для подключения, которого не существует.
config()source public static
config( string|array $key , array|null $config null )
Настраивает новый объект подключения.
Подключение не будет построено до его первого использования.
Параметры
- строка|массив
$key - Имя конфигурации подключения или массив нескольких конфигураций.
- массив|null
$configнеобязательно null - Массив пар имя => конфигурационные данные для адаптера.
Возвращает
массив|nullNull при добавлении конфигурации и массив конфигурационных данных при чтении.
Исключения
Cake\Core\Exception\ExceptionПри попытке изменить существующую конфигурацию.
См. также
\Cake\Core\StaticConfigTrait::config()dropAlias()source public static
dropAlias( string $name )
Удаляет псевдоним.
Удаляет псевдоним из ConnectionManager. Получение алиасированного подключения может завершиться ошибкой, если нет другого подключения с этим именем.
Параметры
- строка
$name - Имя подключения, для которого нужно удалить псевдонимы.
get()source public static
get( string $name , boolean $useAliases true )
Получает подключение.
Если подключение не было построено, экземпляр будет добавлен в реестр. Этот метод будет использовать любые определённые псевдонимы. Если вам нужно исходное подключение без псевдонима, передайте false в качестве второго параметра.
Параметры
- строка
$name - Имя подключения.
- булево
$useAliasesнеобязательно true - Установите в false, чтобы не использовать алиасированные подключения.
Возвращает
Cake\Datasource\ConnectionInterfaceОбъект подключения.
Исключения
Cake\Datasource\Exception\MissingDatasourceConfigExceptionПри отсутствии данных конфигурации.
parseDsn()source public static
parseDsn( string|null $config null )
Разбирает DSN в корректную конфигурацию подключения
Этот метод позволяет задать DSN, используя форматирование, аналогичное тому, которое используется PEAR::DB. Ниже приведен пример его использования:
$dsn = 'mysql://user:pass@localhost/database'; $config = ConnectionManager::parseDsn($dsn); $dsn = 'Cake\Database\Driver\Mysql://localhost:3306/database?className=Cake\Database\Connection'; $config = ConnectionManager::parseDsn($dsn); $dsn = 'Cake\Database\Connection://localhost:3306/database?driver=Cake\Database\Driver\Mysql'; $config = ConnectionManager::parseDsn($dsn);
Для всех классов значение scheme устанавливается как значение и className и driver, если они не были указаны иначе.
Обратите внимание, что аргументы строки запроса также разбираются и устанавливаются в качестве значений в возвращаемой конфигурации.
Параметры
- строка|null
$configнеобязательно null - Строка DSN для преобразования в массив конфигурации
Возвращает
массивМассив конфигурации для хранения после разбора DSN
Методы, используемые из Cake\Core\StaticConfigTrait
configured()source public static
configured( )
Возвращает массив, содержащий заданные конфигурации
Возвращает
массивМассив конфигураций.
drop()source public static
drop( string $config )
Удаляет построенный адаптер.
Если вы хотите изменить существующую конфигурацию, необходимо удалить её, изменить конфигурацию и затем добавить её снова.
Если реализующие объекты поддерживают объект $_registry, заданная конфигурация также будет выгружена из реестра.
Параметры
- строка
$config - Существующая конфигурация, которую вы хотите удалить.
Возвращает
булевоРезультат удаления, возвращает false, если конфигурация не существует.
dsnClassMap()source public static
dsnClassMap( array $map null )
Возвращает или обновляет карту классов DSN для данного класса
Параметры
- массив
$mapнеобязательно null - Добавления/изменения в карту классов для применения
Возвращает
массивПодробное описание свойств
$_dsnClassMapsource
protected static массив
Массив, сопоставляющий схемы URL с полными именами классов драйверов
Возвращает
массив[
'mysql' => 'Cake\Database\Driver\Mysql',
'postgres' => 'Cake\Database\Driver\Postgres',
'sqlite' => 'Cake\Database\Driver\Sqlite',
'sqlserver' => 'Cake\Database\Driver\Sqlserver',
] $_registrysource
protected static Cake\Datasource\ConnectionRegistry
ConnectionRegistry, используемый менеджером.
null
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.2/class-Cake.Datasource.ConnectionManager.html