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' ('utf8' a v5.5.3 előtt)

		# csak MySQL: TINYINT(1) bool-ra konvertálja
		supportBooleans: # (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)
verzió: 4.0