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)
verzió: 4.0