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)