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: ...

Veritabanı Gezgini katmanı için Nette\Database\Connection ve ayrıca Nette\Database\Explorer türünde hizmetler oluşturur. Veritabanı bağlantısı genellikle otomatik kablolama ile aktarılır, bu mümkün değilse @database.default.connection ve @database.default.explorer servis adlarını kullanın.

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' ('utf8' v5.5.3'ten önce)

		# 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:'

Tanımlanan her bağlantı, adlarında bölüm adını içeren hizmetler oluşturur, yani @database.main.connection & @database.main.explorer ve ayrıca @database.another.connection & @database.another.explorer.

Otomatik bağlantı yalnızca ilk bölümdeki hizmetler için etkinleştirilir. Bu, autowired: false veya autowired: true ile değiştirilebilir. Otomatik bağlanmayan hizmetler isimle iletilir:

services:
	- UserFacade(@database.another.connection)
versiyon: 4.0