Конфигуриране на базата данни
Преглед на опциите за конфигуриране на базата данни Nette.
Ако не използвате цялата рамка, а само тази библиотека, прочетете Как да изтеглите конфигурационния файл.
Една връзка
Създайте единична връзка към базата данни:
database:
# DSN, един задължителен ключ.
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Създава услугите Nette\Database\Connection
и Nette\Database\Explorer
, които
обикновено се предават чрез автоматично свързване или чрез
посочване на името им.
Други настройки:
database:
# показва панела База данни в лентата Tracy Bar
debugger: ... # (bool) по подразбиране е true
# извежда заявка EXPLAIN в лентата на Tracy
explain: ... # (bool) по подразбиране е true
# разрешаване на автоматичното свързване за тази връзка
autowired: ... # (bool) по подразбиране е true за първата връзка
# конвенции за таблици: име на открит, статичен или клас
conventions: discovered # (string) 'discovered' по подразбиране
options:
# свързване с базата данни само при необходимост?
lazy: ... # (bool) по подразбиране е false
# Клас на PHP драйвера за бази данни
driverClass: # (string)
# само за MySQL: # задава sql_mode
sqlmode: # (string)
# само за MySQL: set SET NAMES
charset: # (string) по подразбиране е 'utf8mb4'
# само за MySQL: преобразува TINYINT(1) в bool
convertBoolean: # (bool) по подразбиране е false
# връща колони с дати като неизменни обекти (от версия 3.2.1)
newDateTime: # (bool) по подразбиране е false
# само за Oracle и SQLite: formatDate
formatDateTime: # (string) по подразбиране е 'U'
Ключът options
може да съдържа и други опции, които можете да
намерите в документацията на PDO
драйвера, напр:
база данных:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Множество връзки
В конфигурацията можем да дефинираме повече връзки към базата данни, като ги разделим на именувани секции:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Автоматичното свързване е разрешено само за услугите от първия
раздел. Това може да се промени с помощта на autowired: false
или
autowired: true
.
Услуги на DI
Тези услуги се добавят към контейнера DI, където ###
представлява името на връзката:
Име | Тип | Описание |
---|---|---|
database.###.connection |
Nette\Database\Connection | връзка с база данни |
database.###.explorer |
Nette\Database\Explorer | Database Explorer |
Ако дефинираме само една връзка, имената на услугите ще бъдат
database.default.connection
и database.default.explorer
. Ако дефинираме няколко
връзки, както в примера по-горе, имената ще съответстват на разделите,
т.е. database.main.connection
, database.main.explorer
и след това
database.another.connection
и database.another.explorer
.
Неавтентифицираните услуги предаваме изрично, като се позоваваме на тяхното име:
services:
- UserFacade(@database.another.connection)