Adatbázis konfigurálása
A Nette adatbázis konfigurációs lehetőségeinek áttekintése.
Ha nem a teljes keretrendszert, hanem csak ezt a könyvtárat használja, olvassa el , hogyan töltse be a konfigurációt.
Egyetlen kapcsolat
Egyetlen adatbázis-kapcsolat konfigurálása:
database:
# DSN, csak kötelező kulcs
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Létrehozza a Nette\Database\Connection
és a Nette\Database\Explorer
szolgáltatásokat, amelyeket
általában automatikus összekapcsolással vagy a nevükre való hivatkozással adnak át.
Egyéb beállítások:
database:
# adatbázis panel jelenik meg a Tracy Barban?
debugger: ... # (bool) alapértelmezett értéke true
# EXPLAIN lekérdezés megjelenítése a Tracy Bar?
explain: ... # (bool) alapértelmezés szerint true
# engedélyezni az automatikus bekötést a kapcsolathoz?
autowired: ... # (bool) alapértelmezés szerint true az első kapcsolatnál
# táblázat konvenciók: felfedezett, statikus vagy osztálynév
conventions: discovered # (string) alapértelmezett értéke 'discovered'.
options:
# hogy csak akkor csatlakozzon az adatbázishoz, amikor szükséges?
lazy: ... # (bool) alapértelmezett értéke false
# PHP adatbázis-illesztő osztály
driverClass: # (string)
# csak MySQL: sql_mode beállítása
sqlmode: # (string)
# csak MySQL: sets SET NAMES
charset: # (string) alapértelmezés szerint 'utf8mb4'
# csak MySQL: TINYINT(1) bool-ra konvertálja
convertBoolean: # (bool) alapértelmezett értéke false
# a dátum oszlopokat megváltoztathatatlan objektumként adja vissza (3.2.1 verzió óta)
newDateTime: # (bool) alapértelmezett értéke false
# csak Oracle és SQLite: dátumformátum
formatDateTime: # (string) alapértelmezett értéke 'U'
A options
kulcs tartalmazhat más beállításokat is, amelyek a PDO-illesztőprogram dokumentációjában találhatók, például:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Többszörös kapcsolatok
A konfigurációban több adatbázis-kapcsolatot is definiálhatunk, ha azokat nevesített szakaszokra osztjuk:
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
Az automatikus bekötés csak az első szakasz szolgáltatásai esetében engedélyezett. Ez a autowired: false
vagy a autowired: true
segítségével módosítható.
DI szolgáltatások
Ezek a szolgáltatások a DI konténerhez kerülnek hozzáadásra, ahol a ###
a kapcsolat nevét jelenti:
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, akkor a szolgáltatások neve database.default.connection
és
database.default.explorer
lesz. Ha több kapcsolatot definiálunk, mint a fenti példában, akkor a nevek a
szakaszoknak fognak megfelelni, azaz database.main.connection
, database.main.explorer
, majd
database.another.connection
és database.another.explorer
.
A nem hitelesített szolgáltatásokat kifejezetten a nevükre hivatkozva adjuk át:
services:
- UserFacade(@database.another.connection)