Nette Documentation Preview

syntax
Configuration de la base de données
***********************************

.[perex]
Aperçu des options de configuration de la base de données Nette.

Si vous n'utilisez pas l'ensemble du framework, mais seulement cette bibliothèque, lisez [comment charger la configuration |bootstrap:].


Connexion unique .[#toc-single-connection]
------------------------------------------

Configurez une connexion unique à la base de données :

```neon
database:
	# DSN, uniquement la clé obligatoire
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...
```

Il crée des services de type `Nette\Database\Connection` et aussi `Nette\Database\Explorer` pour la couche [Database Explorer |explorer]. La connexion à la base de données est généralement passée par un [câblage automatique |dependency-injection:autowiring], si cela n'est pas possible, utilisez les noms de services `@database.default.connection` resp. `@database.default.explorer`.

Autres paramètres :

```neon
database:
	# affiche le panneau de la base de données dans Tracy Bar ?
	debugger: ...     # (bool) vaut true par défaut

	# affiche la requête EXPLAIN dans Tracy Bar ?
	explain: ...      # (bool) vaut true par défaut

	# activer le câblage automatique pour cette connexion ?
	autowired: ...    # (bool) vaut true par défaut pour la première connexion

	# conventions de la table: découverte, statique, ou nom de classe
	conventions: discovered # (string) Valeur par défaut: 'discovered'.

	options:
		# pour ne se connecter à la base de données qu'en cas de besoin ?
		lazy: ...     # (bool) a pour valeur par défaut false

		# Classe du pilote de base de données PHP
		driverClass:  # (string)

		# seulement MySQL: définit sql_mode
		sqlmode:      # (string)

		# uniquement MySQL: sets SET NAMES
		charset:      # (string) par défaut 'utf8mb4' ('utf8' avant v5.5.3)

		# uniquement Oracle et SQLite: format de date
		formatDateTime: # (string) vaut par défaut 'U'.
```

La clé `options` peut contenir d'autres options qui peuvent être trouvées dans la [documentation du pilote PDO |https://www.php.net/manual/en/pdo.drivers.php], telles que :

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


Connexions multiples .[#toc-multiple-connections]
-------------------------------------------------

Dans la configuration, nous pouvons définir plusieurs connexions de base de données en les divisant en sections nommées :

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

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

Chaque connexion définie crée des services qui incluent le nom de la section dans leur nom, c'est-à-dire `@database.main.connection` & `@database.main.explorer` et ensuite `@database.another.connection` & `@database.another.explorer`.

Le câblage automatique est activé uniquement pour les services de la première section. Ceci peut être modifié avec `autowired: false` ou `autowired: true`. Les services non câblés sont transmis par nom :

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

Configuration de la base de données

Aperçu des options de configuration de la base de données Nette.

Si vous n'utilisez pas l'ensemble du framework, mais seulement cette bibliothèque, lisez comment charger la configuration.

Connexion unique

Configurez une connexion unique à la base de données :

database:
	# DSN, uniquement la clé obligatoire
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...

Il crée des services de type Nette\Database\Connection et aussi Nette\Database\Explorer pour la couche Database Explorer. La connexion à la base de données est généralement passée par un câblage automatique, si cela n'est pas possible, utilisez les noms de services @database.default.connection resp. @database.default.explorer.

Autres paramètres :

database:
	# affiche le panneau de la base de données dans Tracy Bar ?
	debugger: ...     # (bool) vaut true par défaut

	# affiche la requête EXPLAIN dans Tracy Bar ?
	explain: ...      # (bool) vaut true par défaut

	# activer le câblage automatique pour cette connexion ?
	autowired: ...    # (bool) vaut true par défaut pour la première connexion

	# conventions de la table: découverte, statique, ou nom de classe
	conventions: discovered # (string) Valeur par défaut: 'discovered'.

	options:
		# pour ne se connecter à la base de données qu'en cas de besoin ?
		lazy: ...     # (bool) a pour valeur par défaut false

		# Classe du pilote de base de données PHP
		driverClass:  # (string)

		# seulement MySQL: définit sql_mode
		sqlmode:      # (string)

		# uniquement MySQL: sets SET NAMES
		charset:      # (string) par défaut 'utf8mb4' ('utf8' avant v5.5.3)

		# uniquement Oracle et SQLite: format de date
		formatDateTime: # (string) vaut par défaut 'U'.

La clé options peut contenir d'autres options qui peuvent être trouvées dans la documentation du pilote PDO, telles que :

database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true

Connexions multiples

Dans la configuration, nous pouvons définir plusieurs connexions de base de données en les divisant en sections nommées :

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

	another:
		dsn: 'sqlite::memory:'

Chaque connexion définie crée des services qui incluent le nom de la section dans leur nom, c'est-à-dire @database.main.connection & @database.main.explorer et ensuite @database.another.connection & @database.another.explorer.

Le câblage automatique est activé uniquement pour les services de la première section. Ceci peut être modifié avec autowired: false ou autowired: true. Les services non câblés sont transmis par nom :

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