Veritabanını Yapılandırma
Nette Veritabanı için yapılandırma seçeneklerine genel bakış.
Tüm çerçeveyi değil, yalnızca bu kütüphaneyi kullanıyorsanız, yapılandırmayı nasıl yükleyeceğinizi okuyun.
Tek Bağlantı
Tek bir veritabanı bağlantısı yapılandırın:
database:
# DSN, yalnızca zorunlu anahtar
dsn: "sqlite:%appDir%/Model/demo.db"
user: ...
password: ...
Genellikle otomatik kablolama veya adlarına
atıfta bulunarak geçirilen Nette\Database\Connection
ve Nette\Database\Explorer
hizmetlerini
oluşturur.
Diğer ayarlar:
database:
# Tracy Bar'da veritabanı panelini gösterir mi?
debugger: ... # (bool) varsayılan değer true
# Tracy Bar'da EXPLAIN sorgusunu gösterir?
explain: ... # (bool) varsayılan olarak true
# bu bağlantı için otomatik kablolamayı etkinleştirmek için?
autowired: ... # (bool) ilk bağlantı için varsayılan değer true
# tablo kuralları: keşfedilmiş, statik veya sınıf adı
conventions: discovered # (string) varsayılan olarak 'discovered'
options:
# veritabanına yalnızca gerektiğinde bağlanmak için?
lazy: ... # (bool) varsayılan değer false
# PHP veritabanı sürücü sınıfı
driverClass: # (string)
# sadece MySQL: sql_mode'u ayarlar
sqlmode: # (string)
# sadece MySQL: SET NAMES setleri
charset: # (string) varsayılan olarak 'utf8mb4'
# sadece MySQL: TINYINT(1)'i bool'a dönüştürür
convertBoolean: # (bool) varsayılan değer false
# tarih sütunlarını değişmez nesneler olarak döndürür (3.2.1 sürümünden beri)
newDateTime: # (bool) varsayılan değer false
# sadece Oracle ve SQLite: tarih biçimi
formatDateTime: # (string) varsayılan değer 'U'
options
anahtarı, PDO sürücü belgelerinde
bulunabilecek diğer seçenekleri içerebilir, örneğin:
database:
options:
PDO::MYSQL_ATTR_COMPRESS: true
Çoklu Bağlantılar
Yapılandırmada, adlandırılmış bölümlere ayırarak daha fazla veritabanı bağlantısı 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 hizmetler için etkinleştirilir. Bu, autowired: false
veya
autowired: true
kullanılarak değiştirilebilir.
DI Hizmetleri
Bu hizmetler 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, hizmet 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 gelecektir, yani database.main.connection
, database.main.explorer
ve ardından
database.another.connection
ve database.another.explorer
.
Kimliği doğrulanmamış hizmetleri adlarına atıfta bulunarak açıkça iletiriz:
services:
- UserFacade(@database.another.connection)