Nette Documentation Preview

syntax
Adatbázis konfigurálása
***********************

.[perex]
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 |bootstrap:].


Egyetlen kapcsolat .[#toc-single-connection]
--------------------------------------------

Egyetlen adatbázis-kapcsolat konfigurálása:

```neon
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 |dependency-injection:autowiring] vagy a [nevükre |#DI Services] való hivatkozással adnak át.

Egyéb beállítások:

```neon
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 |https://www.php.net/manual/en/pdo.drivers.php] találhatók, például:

```neon
database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true
```


Többszörös kapcsolatok .[#toc-multiple-connections]
---------------------------------------------------

A konfigurációban több adatbázis-kapcsolatot is definiálhatunk, ha azokat nevesített szakaszokra osztjuk:

```neon
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 .[#toc-di-services]
-------------------------------------

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` | [api:Nette\Database\Connection] | adatbázis-kapcsolat
| `database.###.explorer` | [api:Nette\Database\Explorer] | [Database Explorer |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:

```neon
services:
	- UserFacade(@database.another.connection)
```

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)