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: ...
Creează serviciile Nette\Database\Connection
și Nette\Database\Explorer
, care sunt de obicei
trecute prin autocablare sau prin referire la numele
lor.
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 MySQL: convertește TINYINT(1) în bool
convertBoolean: # (bool) implicit la false
# returnează coloanele de date ca obiecte imuabile (începând cu versiunea 3.2.1)
newDateTime: # (bool) valoarea implicită este false
# 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:'
Cablarea automată este activată numai pentru serviciile din prima secțiune. Acest lucru poate fi modificat cu ajutorul
autowired: false
sau autowired: true
.
Servicii DI
Aceste servicii sunt adăugate la containerul DI, unde ###
reprezintă numele conexiunii:
Nume | Tip | Descriere |
---|---|---|
database.###.connection |
Nette\Database\Connection | conexiune la baza de date |
database.###.explorer |
Nette\Database\Explorer | Database Explorer |
Dacă definim o singură conexiune, numele serviciului va fi database.default.connection
și
database.default.explorer
. Dacă definim mai multe conexiuni, ca în exemplul de mai sus, numele vor corespunde
secțiunilor, adică database.main.connection
, database.main.explorer
și apoi
database.another.connection
și database.another.explorer
.
Serviciile neautentificate sunt trecute în mod explicit prin referire la numele lor:
services:
- UserFacade(@database.another.connection)