Dove devono essere memorizzati i parametri del database e della posta in un'app Symfony2?

4

Nella struttura di cartelle predefinita per un progetto Symfony2 le credenziali del database e del server di posta sono memorizzate in parameters.yml file all'interno di ProjectRoot/app/config/parameters.yml con questi valori predefiniti:

parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: null
    database_name: symfony
    database_user: root
    database_password: null
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    locale: en
    secret: ThisTokenIsNotSoSecretChangeIt

Durante lo sviluppo cambiamo questi parametri nel database di sviluppo e nei server di posta. Questo file è selezionato nel repository del codice sorgente.

Il problema si verifica quando vogliamo eseguire la distribuzione sul server di produzione. Stiamo pensando di automatizzare il processo di distribuzione controllando il progetto da git e distribuendolo sul server di produzione.

Il fatto è che il nostro project manager deve aggiornare manualmente questi parametri dopo ogni aggiornamento. I parametri del database di produzione e dei server di posta sono riservati e solo il nostro project manager li conosce.

Ho bisogno di un modo per automatizzare questo passaggio e suggerimenti su dove memorizzare i parametri di produzione fino a quando non vengono applicati?

    
posta Songo 30.10.2013 - 13:32
fonte

2 risposte

2

Rinomina parameters.yml in parameters.yml.sample e ignora parameters.yml nel controllo della versione.

Per ogni installazione dell'app, copia .sample nella posizione corretta e modifica i dettagli secondo necessità.

In questo modo hai un file di esempio che dice che tipo di dettagli (mailer, DB, chiavi API, ecc.) ogni installazione ha bisogno, ei segreti non sono mai in controllo di versione.

    
risposta data 30.10.2013 - 14:40
fonte
0

Per i file di produzione non si dovrebbe usare un file. Un modo molto migliore che non interferisce con le pratiche di sviluppo (utilizzando i file) consiste nell'utilizzare le variabili ENV per l'ambiente di produzione.

Guarda il ricettario per riferimento su questa pratica:

link

    
risposta data 07.09.2015 - 04:22
fonte

Leggi altre domande sui tag