La configurazione databases.yml consente la configurazione della
connessione al database. È usata da entrambi gli ORM preinstallati con symfony: Propel e
Doctrine.
Il file principale di configurazione databases.yml per un progetto può essere trovato
nella cartella config/.
note
La maggior parte delle volte, tutte le applicazioni di un progetto condividono lo stesso
database. Questo è il motivo per cui il principale file di configurazione del database è
nella cartella config/ del progetto. Naturalmente si può non tenere conto della configurazione
predefinita, definendo un file di configurazione databases.yml
nelle cartelle di configurazione dell'applicazione.
Come discusso in sede di introduzione, il file databases.yml è
consapevole dell'ambiente, trae beneficio
dal meccanismo di configurazione a cascata,
e può includere costanti.
Ogni connessione descritta nel file databases.yml deve comprendere un nome, un nome
del gestore di classe del database e un set di parametri (param) usati per configurare
l'oggetto database:
CONNECTION_NAME:
class: CLASS_NAME
param: { ARRAY OF PARAMETERS }
Il nome class dovrebbe estendere la classe base sfDatabase.
Se la classe che gestisce il database non può essere autocaricata, un file percorso può essere
definito e sarà automaticamente incluso prima che il factory sia creato:
CONNECTION_NAME: class: CLASS_NAME file: ABSOLUTE_PATH_TO_FILE
note
Il file di configurazione databases.yml è salvato nella cache come file PHP; il
processo è gestito automaticamente dalla classe
sfDatabaseConfigHandler.
tip
La configurazione del database può anche essere configurata utilizzando
il task database:configure. Questo task aggiorna il file databases.yml
in base ai parametri che gli vengono passati.
Propel
Configurazione predefinita:
dev:
propel:
param:
classname: DebugPDO
test:
propel:
param:
classname: DebugPDO
all:
propel:
class: sfPropelDatabase
param:
classname: PropelPDO
dsn: mysql:dbname=##PROJECT_NAME##;host=localhost
username: root
password:
encoding: utf8
persistent: true
pooling: true
I seguenti parametri possono essere personalizzati nella sezione param:
| Chiave | Descrizione | Valore predefinito |
|---|---|---|
classname |
La classe adattatore per Propel | PropelPDO |
dsn |
Il DSN PDO (obbligatorio) | - |
username |
Nome utente per il database | - |
password |
Password per il database | - |
pooling |
Abilita il pooling | true |
encoding |
L'insieme di caratteri predefinito | utf8 |
persistent |
Per creare connessioni persistenti | false |
options |
Un insieme di opzioni per Propel | - |
Doctrine
Configurazione predefinita:
all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:dbname=##PROJECT_NAME##;host=localhost
username: root
password:
attributes:
quote_identifier: false
use_native_enum: false
validate: all
idxname_format: %s_idx
seqname_format: %s_seq
tblname_format: %s
I seguenti parametri possono essere personalizzati sotto la sezione param:
| Chiave | Descrizione | Valore predefinito |
|---|---|---|
dsn |
Il DSN PDO (obbligatorio) | - |
username |
Nome utente per il database | - |
password |
Password per il database | - |
encoding |
L'insieme di caratteri predefinito | utf8 |
attributes |
Un insieme di attributi per Doctrine | - |
I seguenti attributi possono essere personalizzati sotto la sezione attributes:
| Chiave | Descrizione | Valore predefinito |
|---|---|---|
quote_identifier |
Per mettere gli identificatori tra virgolette | false |
use_native_enum |
Per usare l'enum nativo | false |
validate |
Per abilitare la validazione dei dati | true |
idxname_format |
Formato per i nomi degli indici | %s_idx |
seqname_format |
Formato per i nomi delle sequenze | %s_seq |
tblname_format |
Formato per i nomi delle tabelle | %s |
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.