2015-02-18 11 views
9

Ho alcune voci personalizzate nel mio parameters.yml, ogni volta che eseguo un aggiornamento di compositore, vuole aggiungere le voci mancanti, che sovrascrive ancora peggio le mie voci personalizzate. Come posso fermarlo?compositore update mantiene overwriting parameters.yml quando si utilizzano valori personalizzati

ad es. prima dell'aggiornamento compositore

#parameters.yml 
# Env = GLOBAL 
parameters: 
# DB settings - GLOBAL 
database_driver: pdo_mysql 
database_host: 127.0.0.1 
database_port: 3306 

#mailer settings 
mailer_to: [email protected] 
mailer_from: [email protected] 
mailer_transport: smtp 
mailer_subject: ":-| Something is broken!" 

# Framework use - GLOBAL 
locale: en 

dopo

#parameters.yml 
# This file is auto-generated during the composer install 
parameters: 
database_driver: pdo_mysql 
database_host: 127.0.0.1 
database_port: 3306 
mailer_transport: smtp 
locale: en 
database_name: 
database_user: 
database_password: 
mailer_host: 
mailer_user: 
mailer_password: 
secret: 

Per fortuna il mio repo e il mio file di lavoro attraverso il mio IDE sono due file diversi e devono essere sincronizzati. dopo aver eseguito l'aggiornamento del compositore, quando eseguo una sincronizzazione, scarico tutti i file sul mio IDE tranne per parameters.yml, che spingo indietro per sovrascrivere quello appena creato.

Vorrei eliminare questa seccatura, poiché tengo le mie password db su un file per/env.

MODIFICA: Quando provo a compilare i vars non necessari come valori fittizi annullandoli, si ritorce di nuovo.

$ composer update 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
Generating autoload files 
Updating the "app/config/parameters.yml" file 
Some parameters are missing. Please provide them. 
database_name: null 
database_user: null 
database_password: null 
mailer_host: null 
mailer_user: null 
mailer_password: null 
secret: null 

    [Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException] 
    You have requested a non-existent parameter "mailer_from". 

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception 

    [RuntimeException] 
    An error occurred when executing the "'cache:clear --no-warmup'" command. 

Anche il parametro personalizzato sta causando problemi.

Così ora vado a sbirciare il mio file appena generato, e sembra che questo

# This file is auto-generated during the composer install 
parameters: 
    database_driver: pdo_mysql 
    database_host: 127.0.0.1 
    database_port: 3306 
    mailer_transport: smtp 
    locale: en 
    database_name: null 
    database_user: null 
    database_password: null 
    mailer_host: null 
    mailer_user: null 
    mailer_password: null 
    secret: null 

Ma ciò che ho bisogno di dire dopo rigenerante idealmente è questo

/** 
* my custom comment and copyright/legal tamper warning 
*/ 
# Env = GLOBAL 
parameters: 
    # DB settings - GLOBAL 
    database_driver: pdo_mysql 
    database_host: 127.0.0.1 
    database_port: 3306 

    #mailer settings 
    mail_to: [email protected] 
    mail_from: [email protected] 
    mail_transport: smtp 
    mail_subject: ":-| Something is broken!" 

    # Framework use - GLOBAL 
    locale: en 

Il resto del i miei parametri si trovano su un altro file di parametri, che è incluso dinamicamente a seconda di ciò che viene caricato e ha diversi db creds su ognuno di essi.

EDITper @AlpineCoder risposta: miei latests scoperte perché l'aggiunta di valori fittizi non lavorare

Quando aggiungo questo al mio parameters.yml

#dummy values to avoid regeneration 
    database_name: dummyvalue 
    database_user: dummyvalue 
    database_password: dummyvalue 
    mailer_host: dummyvalue 
    mailer_user: dummyvalue 
    mailer_password: dummyvalue 
    secret: dummyvalue 

E non mi chiede di riempire questi valori, è fantastico, tuttavia, rigenera ancora il file, eliminando tutti i miei valori personalizzati, lasciandomi con questo

# This file is auto-generated during the composer install 
parameters: 
    database_driver: pdo_mysql 
    database_host: 127.0.0.1 
    database_port: 3306 
    mailer_transport: smtp 
    locale: en 
    database_name: dummyvalue 
    database_user: dummyvalue 
    database_password: dummyvalue 
    mailer_host: dummyvalue 
    mailer_user: dummyvalue 
    mailer_password: dummyvalue 
    secret: dummyvalue 

risposta

28

avete due opzioni, o compilare parameters.yml.dist oppure si può andare al file composer.json e nel post-update-cmd e post-installazione-cmd si dovrebbe vedere qualcosa come

"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 

se si rimuove tale linea, i parametri non verranno più modificati quando si esegue compositore.

Se si sta collaborando con altre persone, aggiornare i parametri.yml.dist sarà probabilmente il modo migliore per andare in quanto aiuterà a ricordare loro che hanno bisogno di compilare nuovi parametri quando ne vengono introdotti di nuovi.

+0

Grazie, questa è in realtà la risposta che stavo cercando, come disabilitare questo. Mi ero dimenticato da dove proveniva il comando. Sono lo sviluppatore solista di questo progetto. causa un sovraccarico maggiore per manomettere questo file. è circa l'unico file che non voglio automatizzato. è il file che contiene le informazioni env degli utenti, come le sue informazioni db. In modo che non dovrebbe cambiare spesso, e un utente non dovrebbe hvae per andare a cercare il suo pw tutto il tempo. tuttavia, vedo cosa intendi per il vantaggio durante la collaborazione. Grazie! – blamb

+0

hmm, si sente a disagio che ottengo premio a questo essere una delle domande più visti sulla pila, ma nessuno dei miei commenti hanno un valore aggiunto, in base al voto, e la mia domanda non sta ancora ricevendo seguenti voti. non so cosa significhi .. qualcuno ha un po 'di amore da queste parti per buone domande e commenti? Consente a questo stack di lavorare qui per noi :-) – blamb

+2

"aggiornare la tua' parameters.yml.dist' "è la risposta che stavo cercando. Questa dovrebbe essere la prima cosa menzionata. – aalaap

5

Se si aggiungono i parametri personalizzati (e un valore predefinito/fittizio) al file parameters.yml.dist, non è necessario chiedere/sovrascrivere i valori personalizzati nel file parameters.yml.

+0

avevo provato che minuti prima di fare questo post. non ha funzionato. mal provate a spiegare un po 'più tardi quando posso ricrearlo. – blamb

+0

ok guarda le mie modifiche, sul perché questo non ha funzionato per me – blamb

Problemi correlati