Veritabanı yapılandırması
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 okuyun.
Tek bağlantı
Tek bir veritabanı bağlantısının yapılandırılması:
database:
# DSN, tek zorunlu anahtar
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Genellikle otomatik kablolama ile ilettiğimiz
Nette\Database\Connection ve Nette\Database\Explorer servislerini oluşturur veya adlarına bir referansla.
Diğer ayarlar:
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
bulabileceğiniz diğer seçenekleri belirtebilirsiniz, örneğin:
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:
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 |
Nette\Database\Connection | veritabanı bağlantısı |
database.###.explorer |
Nette\Database\Explorer | Database 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:
services:
- UserFacade(@database.another.connection)