Nette Documentation Preview

syntax
Konfiguriranje podatkovne zbirke
********************************

.[perex]
Pregled možnosti konfiguracije za podatkovno zbirko Nette.

Če ne uporabljate celotnega ogrodja, temveč samo to knjižnico, preberite, [kako naložiti konfiguracijo |bootstrap:].


Posamezna povezava .[#toc-single-connection]
--------------------------------------------

Konfiguracija ene povezave s podatkovno bazo:

```neon
database:
	# DSN, samo obvezni ključ
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...
```

Ustvari storitvi `Nette\Database\Connection` in `Nette\Database\Explorer`, ki ju običajno posredujemo s [samodejnim povezovanjem |dependency-injection:autowiring] ali s sklicevanjem na [njuno ime |#DI Services].

Druge nastavitve:

```neon
database:
	# prikazuje ploščo podatkovne baze v vrstici Tracy Bar?
	debugger: ...     # (bool) privzeto je true

	# prikaže poizvedbo EXPLAIN v Tracy Bar?
	explain: ...      # (bool) privzeto je true

	# omogoči samodejno napeljavo za to povezavo?
	autowired: ...    # (bool) privzeto true za prvo povezavo

	# konvencije za tabele: odkrito, statično ali ime razreda
	conventions: discovered  # (string) privzeto je 'discovered'

	options:
		# da se poveže s podatkovno bazo samo, ko je to potrebno?
		lazy: ...     # (bool) privzeto false

		# Razred gonilnika podatkovne zbirke PHP
		driverClass:  # (niz)

		# samo MySQL: nastavi sql_mode
		sqlmode:      # (niz)

		# samo MySQL: nastavi SET NAMES
		charset:      # (niz) privzeta vrednost je 'utf8mb4'

		# samo MySQL: pretvori TINYINT(1) v bool
		convertBoolean: # (bool) privzeto false

		# vrne stolpce datumov kot nespremenljive predmete (od različice 3.2.1)
		newDateTime:  # (bool) privzeto false

		# samo Oracle in SQLite: format datuma
		formatDateTime: # (niz) privzeta vrednost je 'U'
```

Ključ `options` lahko vsebuje druge možnosti, ki jih najdete v [dokumentaciji gonilnika PDO |https://www.php.net/manual/en/pdo.drivers.php], na primer:

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


Več povezav .[#toc-multiple-connections]
----------------------------------------

V konfiguraciji lahko opredelimo več povezav s podatkovno bazo, tako da jih razdelimo v poimenovane razdelke:

```neon
database:
	main:
		dsn: 'mysql:host=127.0.0.1;dbname=test'
		user: root
		password: password

	another:
		dsn: 'sqlite::memory:'
```

Samodejno ožičenje je omogočeno samo za storitve iz prvega oddelka. To lahko spremenite z uporabo `autowired: false` ali `autowired: true`.


Storitve DI .[#toc-di-services]
-------------------------------

Te storitve se dodajo v vsebnik DI, kjer `###` predstavlja ime povezave:

| Ime | Vrsta | Opis
|----------------------------------------------------------
| `database.###.connection` | [api:Nette\Database\Connection] | povezava s podatkovno bazo
| `database.###.explorer` | [api:Nette\Database\Explorer] | [Database Explorer |explorer]


Če določimo samo eno povezavo, bosta imeni storitev `database.default.connection` in `database.default.explorer`. Če določimo več povezav, kot v zgornjem primeru, bodo imena ustrezala razdelkom, tj. `database.main.connection`, `database.main.explorer` in nato `database.another.connection` in `database.another.explorer`.

Neavtentificirane storitve posredujemo izrecno s sklicevanjem na njihovo ime:

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

Konfiguriranje podatkovne zbirke

Pregled možnosti konfiguracije za podatkovno zbirko Nette.

Če ne uporabljate celotnega ogrodja, temveč samo to knjižnico, preberite, kako naložiti konfiguracijo.

Posamezna povezava

Konfiguracija ene povezave s podatkovno bazo:

database:
	# DSN, samo obvezni ključ
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...

Ustvari storitvi Nette\Database\Connection in Nette\Database\Explorer, ki ju običajno posredujemo s samodejnim povezovanjem ali s sklicevanjem na njuno ime.

Druge nastavitve:

database:
	# prikazuje ploščo podatkovne baze v vrstici Tracy Bar?
	debugger: ...     # (bool) privzeto je true

	# prikaže poizvedbo EXPLAIN v Tracy Bar?
	explain: ...      # (bool) privzeto je true

	# omogoči samodejno napeljavo za to povezavo?
	autowired: ...    # (bool) privzeto true za prvo povezavo

	# konvencije za tabele: odkrito, statično ali ime razreda
	conventions: discovered  # (string) privzeto je 'discovered'

	options:
		# da se poveže s podatkovno bazo samo, ko je to potrebno?
		lazy: ...     # (bool) privzeto false

		# Razred gonilnika podatkovne zbirke PHP
		driverClass:  # (niz)

		# samo MySQL: nastavi sql_mode
		sqlmode:      # (niz)

		# samo MySQL: nastavi SET NAMES
		charset:      # (niz) privzeta vrednost je 'utf8mb4'

		# samo MySQL: pretvori TINYINT(1) v bool
		convertBoolean: # (bool) privzeto false

		# vrne stolpce datumov kot nespremenljive predmete (od različice 3.2.1)
		newDateTime:  # (bool) privzeto false

		# samo Oracle in SQLite: format datuma
		formatDateTime: # (niz) privzeta vrednost je 'U'

Ključ options lahko vsebuje druge možnosti, ki jih najdete v dokumentaciji gonilnika PDO, na primer:

database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true

Več povezav

V konfiguraciji lahko opredelimo več povezav s podatkovno bazo, tako da jih razdelimo v poimenovane razdelke:

database:
	main:
		dsn: 'mysql:host=127.0.0.1;dbname=test'
		user: root
		password: password

	another:
		dsn: 'sqlite::memory:'

Samodejno ožičenje je omogočeno samo za storitve iz prvega oddelka. To lahko spremenite z uporabo autowired: false ali autowired: true.

Storitve DI

Te storitve se dodajo v vsebnik DI, kjer ### predstavlja ime povezave:

Ime Vrsta Opis
database.###.connection Nette\Database\Connection povezava s podatkovno bazo
database.###.explorer Nette\Database\Explorer Database Explorer

Če določimo samo eno povezavo, bosta imeni storitev database.default.connection in database.default.explorer. Če določimo več povezav, kot v zgornjem primeru, bodo imena ustrezala razdelkom, tj. database.main.connection, database.main.explorer in nato database.another.connection in database.another.explorer.

Neavtentificirane storitve posredujemo izrecno s sklicevanjem na njihovo ime:

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