Configurarea bazei de date
Prezentare generală a opțiunilor de configurare pentru baza de date Nette.
Dacă nu utilizați întregul cadru, ci doar această bibliotecă, citiți cum se încarcă configurația.
Conexiune unică
Configurați o singură conexiune la baza de date:
database:
# DSN, numai cheia obligatorie
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Se creează servicii de tip Nette\Database\Connection
și Nette\Database\Explorer
pentru stratul Database Explorer. Conexiunea la baza de date este de obicei transmisă prin
autocablare, dacă acest lucru nu este posibil, utilizați
numele serviciilor @database.default.connection
resp. @database.default.explorer
.
Alte setări:
database:
# afișează panoul bazei de date în Tracy Bar?
debugger: ... # (bool) valoarea implicită este true
# afișează interogarea EXPLAIN în Tracy Bar?
explain: ... # (bool) implicit la true
# pentru a activa cablarea automată pentru această conexiune?
autowired: ... # (bool) implicit la true pentru prima conexiune
# convenții pentru tabele: descoperit, static sau nume de clasă
conventions: discovered # (string) valoarea implicită este "discovered" (descoperit)
options:
# să se conecteze la baza de date numai atunci când este necesar?
lazy: ... # (bool) valoarea implicită este false
# Clasa driverului de bază de date PHP
driverClass: # (string)
# numai MySQL: stabilește sql_mode
sqlmode: # (string)
# numai MySQL: stabilește SET NAMES
charset: # (șir de caractere) implicit la "utf8mb4" ("utf8" înainte de v5.5.3)
# numai Oracle și SQLite: formatul datei
formatDateTime: # (șir de caractere) implicit la "U".
Cheia options
poate conține și alte opțiuni care pot fi găsite în documentația driverului PDO, cum ar fi:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Conexiuni multiple
În configurație putem defini mai multe conexiuni la baza de date, împărțindu-le în secțiuni denumite:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Fiecare conexiune definită creează servicii care includ numele secțiunii în numele lor, adică
@database.main.connection
& @database.main.explorer
și mai departe
@database.another.connection
& @database.another.explorer
.
Cablarea automată este activată numai pentru serviciile din prima secțiune. Acest lucru poate fi modificat cu
autowired: false
sau autowired: true
. Serviciile care nu sunt conectate automat sunt transmise
după nume:
services:
- UserFacade(@database.another.connection)