-
-
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.42 KB
/
configuration.texy
File metadata and controls
110 lines (75 loc) · 3.42 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
Veritabanı yapılandırması
*************************
.[perex]
Nette Database için yapılandırma seçeneklerine genel bakış.
Tüm framework'ü değil de yalnızca bu kütüphaneyi kullanıyorsanız, [yapılandırmanın nasıl yükleneceğini|bootstrap:] okuyun.
Tek bağlantı
------------
Tek bir veritabanı bağlantısının yapılandırılması:
```neon
database:
# DSN, tek zorunlu anahtar
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
```
Genellikle [otomatik kablolama |dependency-injection:autowiring] ile ilettiğimiz `Nette\Database\Connection` ve `Nette\Database\Explorer` servislerini oluşturur veya [adlarına |#DI Servisleri] bir referansla.
Diğer ayarlar:
```neon
database:
# Tracy Bar'da veritabanı panelini göster?
debugger: ... # (bool) varsayılan true'dur
# Tracy Bar'da sorguların EXPLAIN'ini göster?
explain: ... # (bool) varsayılan true'dur
# Bu bağlantı için otomatik kablolamaya izin ver?
autowired: ... # (bool) ilk bağlantı için varsayılan true'dur
# tablo kuralları: discovered, static veya sınıf adı
conventions: discovered # (string) varsayılan 'discovered'
options:
# veritabanına yalnızca gerektiğinde bağlan?
lazy: ... # (bool) varsayılan false'dur
# Veritabanı sürücüsü PHP sınıfı
driverClass: # (string)
# yalnızca MySQL: sql_mode ayarlar
sqlmode: # (string)
# yalnızca MySQL: SET NAMES ayarlar
charset: # (string) varsayılan 'utf8mb4'
# yalnızca MySQL: TINYINT(1)'i bool'a dönüştürür
convertBoolean: # (bool) varsayılan false'dur
# tarih içeren sütunları değişmez nesneler olarak döndürür (sürüm 3.2.1'den itibaren)
newDateTime: # (bool) varsayılan false'dur
# yalnızca Oracle ve SQLite: tarih kaydetme formatı
formatDateTime: # (string) varsayılan 'U'
```
`options` anahtarında, [PDO sürücü belgelerinde |https://www.php.net/manual/en/pdo.drivers.php] bulabileceğiniz diğer seçenekleri belirtebilirsiniz, örneğin:
```neon
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
```
Çoklu bağlantılar
-----------------
Yapılandırmada, adlandırılmış bölümlere ayırarak birden fazla veritabanı bağlantısı da tanımlayabiliriz:
```neon
database:
main:
dsn: 'mysql:host=127.0.0.1;dbname=test'
user: root
password: password
another:
dsn: 'sqlite::memory:'
```
Otomatik kablolama yalnızca ilk bölümdeki servisler için etkindir. Bu, `autowired: false` veya `autowired: true` kullanılarak değiştirilebilir.
DI Servisleri
-------------
Bu servisler DI konteynerine eklenir, burada `###` bağlantı adını temsil eder:
| Ad | Tür | Açıklama
|----------------------------------------------------------
| `database.###.connection` | [api:Nette\Database\Connection] | veritabanı bağlantısı
| `database.###.explorer` | [api:Nette\Database\Explorer] | [Database Explorer |explorer]
Yalnızca bir bağlantı tanımlarsak, servis adları `database.default.connection` ve `database.default.explorer` olacaktır. Yukarıdaki örnekte olduğu gibi birden fazla bağlantı tanımlarsak, adlar bölümlere karşılık gelir, yani `database.main.connection`, `database.main.explorer` ve ayrıca `database.another.connection` ve `database.another.explorer`.
Otomatik olarak kablolanmayan servisleri adlarına açık bir referansla iletiriz:
```neon
services:
- UserFacade(@database.another.connection)
```