Διαμόρφωση της βάσης δεδομένων

Επισκόπηση των επιλογών διαμόρφωσης για τη βάση δεδομένων Nette.

Αν δεν χρησιμοποιείτε ολόκληρο το πλαίσιο, αλλά μόνο αυτή τη βιβλιοθήκη, διαβάστε πώς να φορτώσετε τη διαμόρφωση.

Ενιαία σύνδεση

Διαμορφώστε μια ενιαία σύνδεση βάσης δεδομένων:

database:
	# DSN, μόνο υποχρεωτικό κλειδί
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...

Δημιουργεί τις υπηρεσίες Nette\Database\Connection και Nette\Database\Explorer, οι οποίες συνήθως μεταβιβάζονται με αυτόματη σύνδεση ή με αναφορά στο όνομά τους.

Άλλες ρυθμίσεις:

database:
	# εμφανίζει πίνακα βάσεων δεδομένων στο Tracy Bar?
	debugger: ...     # (bool) προεπιλογή true

	# εμφανίζει το ερώτημα EXPLAIN στο Tracy Bar?
	explain: ...      # (bool) προεπιλογή σε true

	# για να ενεργοποιήσει την αυτόματη καλωδίωση για αυτή τη σύνδεση?
	autowired: ...    # (bool) εξ ορισμού true για την πρώτη σύνδεση

	# συμβάσεις πίνακα: ανακάλυψη, στατικό ή όνομα κλάσης
	conventions: discovered  # (string) προεπιλογή 'discovered'.

	options:
		# να συνδέεται στη βάση δεδομένων μόνο όταν χρειάζεται;
		lazy: ...     # (bool) προεπιλογή σε false

		# Κλάση προγράμματος οδήγησης βάσης δεδομένων PHP
		driverClass:  # (string)

		# μόνο MySQL: ορίζει sql_mode
		sqlmode:      # (string)

		# μόνο MySQL: ορίζει SET NAMES
		charset:      # (string) προεπιλογή 'utf8mb4'

		# μόνο MySQL: μετατρέπει το TINYINT(1) σε bool
		convertBoolean: # (bool) προεπιλογή σε false

		# επιστρέφει τις στήλες ημερομηνίας ως αμετάβλητα αντικείμενα (από την έκδοση 3.2.1)
		newDateTime:  # (bool) με προεπιλογή false

		# μόνο Oracle και SQLite: μορφή ημερομηνίας
		formatDateTime: # (string) προεπιλογή 'U'

Το κλειδί options μπορεί να περιέχει και άλλες επιλογές που μπορείτε να βρείτε στην τεκμηρίωση του προγράμματος οδήγησης PDO, όπως:

database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true

Πολλαπλές συνδέσεις

Στη διαμόρφωση μπορούμε να ορίσουμε περισσότερες συνδέσεις βάσης δεδομένων χωρίζοντάς τες σε ονομαστικές ενότητες:

database:
	main:
		dsn: 'mysql:host=127.0.0.1;dbname=test'
		user: root
		password: password

	another:
		dsn: 'sqlite::memory:'

Η αυτόματη καλωδίωση είναι ενεργοποιημένη μόνο για υπηρεσίες από το πρώτο τμήμα. Αυτό μπορεί να αλλάξει χρησιμοποιώντας τις διευθύνσεις autowired: false ή autowired: true.

Υπηρεσίες DI

Αυτές οι υπηρεσίες προστίθενται στο δοχείο DI, όπου το ### αντιπροσωπεύει το όνομα της σύνδεσης:

Όνομα Τύπος Περιγραφή
database.###.connection Nette\Database\Connection σύνδεση με βάση δεδομένων
database.###.explorer Nette\Database\Explorer Database Explorer

Αν ορίσουμε μόνο μία σύνδεση, τα ονόματα των υπηρεσιών θα είναι database.default.connection και database.default.explorer. Αν ορίσουμε πολλαπλές συνδέσεις όπως στο παραπάνω παράδειγμα, τα ονόματα θα αντιστοιχούν στα τμήματα, δηλαδή database.main.connection, database.main.explorer και στη συνέχεια database.another.connection και database.another.explorer.

Περνάμε τις μη πιστοποιημένες υπηρεσίες ρητά αναφερόμενοι στο όνομά τους:

services:
	- UserFacade(@database.another.connection)
έκδοση: 4.0