-
-
Notifications
You must be signed in to change notification settings - Fork 277
Expand file tree
/
Copy pathconfiguration.texy
More file actions
110 lines (75 loc) · 3.41 KB
/
configuration.texy
File metadata and controls
110 lines (75 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Configurazione del database
***************************
.[perex]
Panoramica delle opzioni di configurazione per Nette Database.
Se non utilizzate l'intero framework, ma solo questa libreria, leggete [come caricare la configurazione|bootstrap:].
Connessione singola
-------------------
Configurazione di una singola connessione al database:
```neon
database:
# DSN, unica chiave obbligatoria
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
```
Crea i servizi `Nette\Database\Connection` e `Nette\Database\Explorer`, che di solito passiamo tramite [autowiring |dependency-injection:autowiring], oppure tramite riferimento al [loro nome |#Servizi DI].
Altre impostazioni:
```neon
database:
# visualizzare il pannello del database nella Tracy Bar?
debugger: ... # (bool) il default è true
# visualizzare EXPLAIN delle query nella Tracy Bar?
explain: ... # (bool) il default è true
# abilitare l'autowiring per questa connessione?
autowired: ... # (bool) il default è true per la prima connessione
# convenzioni delle tabelle: discovered, static o nome della classe
conventions: discovered # (string) il default è 'discovered'
options:
# connettersi al database solo quando necessario?
lazy: ... # (bool) il default è false
# Classe PHP del driver del database
driverClass: # (string)
# solo MySQL: imposta sql_mode
sqlmode: # (string)
# solo MySQL: imposta SET NAMES
charset: # (string) il default è 'utf8mb4'
# solo MySQL: converte TINYINT(1) in bool
convertBoolean: # (bool) il default è false
# restituisce le colonne data come oggetti immutabili (dalla versione 3.2.1)
newDateTime: # (bool) il default è false
# solo Oracle e SQLite: formato per la memorizzazione della data
formatDateTime: # (string) il default è 'U'
```
Nella chiave `options` è possibile specificare altre opzioni che trovate nella [documentazione dei driver PDO |https://www.php.net/manual/en/pdo.drivers.php], come ad esempio:
```neon
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
```
Connessioni multiple
--------------------
Nella configurazione possiamo definire anche più connessioni al database dividendole in sezioni denominate:
```neon
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
```
L'autowiring è abilitato solo per i servizi della prima sezione. È possibile modificarlo tramite `autowired: false` o `autowired: true`.
Servizi DI
----------
Questi servizi vengono aggiunti al container DI, dove `###` rappresenta il nome della connessione:
| Nome | Tipo | Descrizione
|------------------------------------------------------------------------------------
| `database.###.connection` | [api:Nette\Database\Connection] | connessione al database
| `database.###.explorer` | [api:Nette\Database\Explorer] | [Database Explorer |explorer]
Se definiamo solo una connessione, i nomi dei servizi saranno `database.default.connection` e `database.default.explorer`. Se definiamo più connessioni come nell'esempio sopra, i nomi corrisponderanno alle sezioni, cioè `database.main.connection`, `database.main.explorer` e inoltre `database.another.connection` e `database.another.explorer`.
I servizi non autowired li passiamo esplicitamente tramite riferimento al loro nome:
```neon
services:
- UserFacade(@database.another.connection)
```