Διαμόρφωση της βάσης δεδομένων
Επισκόπηση των επιλογών διαμόρφωσης για τη βάση δεδομένων 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)