Ho cercato di decidere come implementarlo. Da un lato, Symfony2 fornisce una buona cache di produzione, quindi se non stai modificando in modo distruttivo lo schema del tuo database (rimuovendo colonne o tabelle, ecc.), Probabilmente puoi fare a meno di cambiare lo schema, distribuire dal repository, quindi cancellare il tuo prod cache. Ecco come gestisco le cose la maggior parte del tempo.
D'altra parte, se si vuole entrare in modalità di manutenzione, si vorrà una soluzione che abbia un carico minimo sul framework (cioè, probabilmente non si voglia accendere il kernel), oppure Stai comunque sconfiggendo lo scopo: togli il carico dalla struttura mentre muli di cose.
Se si trattasse di me, probabilmente sarei scrivere un semplice script di manutenzione che solo imposta un colpo di testa 503, forse serve un po 'di html statico (pregenerato dai miei modelli di sito) e lo invia all'utente, quindi utilizzare alcuni condizionale logica nel mio app.php
da usare quando dovrei essere in modalità manutenzione. È brutto, ma funziona.
È davvero così coinvolto? Non puoi semplicemente aggiungere un percorso con caratteri jolly basato su un'opzione di configurazione? –
L'unico problema è che richiede il caricamento del framework. Se le tue modifiche non interrompono le cose mentre stai aggiornando, questa è davvero la strada da percorrere. Altrimenti, uno script manuale è probabilmente la scelta migliore. – Problematic
Sostituisco il file app.php con un file maintenance.php che ho creato. non appena la distribuzione è finita, l'app.php viene rimandato. – tmas