![]() |
|
The symfony Reference BookIl file di configurazione databases.yml |
|
You are currently reading "The symfony Reference Book" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

|
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. |
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/.
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 configurazionedatabases.ymlnelle 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
Il file di configurazione
databases.ymlè salvato nella cache come file PHP; il processo è gestito automaticamente dalla classesfDatabaseConfigHandler.
La configurazione del database può anche essere configurata utilizzando il task
database:configure. Questo task aggiorna il filedatabases.ymlin base ai parametri che gli vengono passati.
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 | - |
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 |
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.