Adatbázis konfiguráció
A Nette Database konfigurációs lehetőségeinek áttekintése.
Ha nem a teljes keretrendszert használja, csak ezt a könyvtárat, olvassa el, hogyan töltse be a konfigurációt.
Egy kapcsolat
Egy adatbázis-kapcsolat konfigurációja:
database:
# DSN, az egyetlen kötelező kulcs
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Létrehozza a Nette\Database\Connection
és Nette\Database\Explorer
szolgáltatásokat, amelyeket
általában autowiringgel adunk át, vagy hivatkozással a
nevükre.
További beállítások:
database:
# megjelenítse az adatbázis panelt a Tracy Bar-ban?
debugger: ... # (bool) alapértelmezett true
# megjelenítse az EXPLAIN lekérdezéseket a Tracy Bar-ban?
explain: ... # (bool) alapértelmezett true
# engedélyezze az autowiringet ehhez a kapcsolathoz?
autowired: ... # (bool) alapértelmezett true az első kapcsolatnál
# tábla konvenciók: discovered, static vagy osztálynév
conventions: discovered # (string) alapértelmezett 'discovered'
options:
# csak akkor csatlakozzon az adatbázishoz, amikor szükséges?
lazy: ... # (bool) alapértelmezett false
# PHP adatbázis-illesztőprogram osztálya
driverClass: # (string)
# csak MySQL: beállítja az sql_mode-ot
sqlmode: # (string)
# csak MySQL: beállítja a SET NAMES-t
charset: # (string) alapértelmezett 'utf8mb4'
# csak MySQL: a TINYINT(1)-et bool-ra konvertálja
convertBoolean: # (bool) alapértelmezett false
# a dátum oszlopokat immutable objektumokként adja vissza (3.2.1 verziótól)
newDateTime: # (bool) alapértelmezett false
# csak Oracle és SQLite: dátum tárolási formátuma
formatDateTime: # (string) alapértelmezett 'U'
Az options
kulcsban további opciókat adhat meg, amelyeket a PDO illesztőprogramok dokumentációjában talál, például:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Több kapcsolat
A konfigurációban több adatbázis-kapcsolatot is definiálhatunk, elnevezett szekciókra osztva:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Az autowiring csak az első szekcióból származó szolgáltatásoknál van bekapcsolva. Ezt meg lehet változtatni az
autowired: false
vagy autowired: true
segítségével.
DI Szolgáltatások
Ezek a szolgáltatások kerülnek hozzáadásra a DI konténerhez, ahol a ###
a kapcsolat nevét jelöli:
Név | Típus | Leírás |
---|---|---|
database.###.connection |
Nette\Database\Connection | adatbázis-kapcsolat |
database.###.explorer |
Nette\Database\Explorer | Database Explorer |
Ha csak egy kapcsolatot definiálunk, a szolgáltatások nevei database.default.connection
és
database.default.explorer
lesznek. Ha több kapcsolatot definiálunk, mint a fenti példában, a nevek megfelelnek a
szekcióknak, azaz database.main.connection
, database.main.explorer
, valamint
database.another.connection
és database.another.explorer
.
A nem autowire-olt szolgáltatásokat explicit módon, a nevükre való hivatkozással adjuk át:
services:
- UserFacade(@database.another.connection)