Symfony2 aggiorna bootstrap.php.cache

Recentemente ho avviato un progetto in Symfony2 dalla versione BETA disponibile su symfony.com

Dopo un po ‘, ho dovuto effettuare l’aggiornamento al ramo master, così ho recuperato l’ultimo da github e l’ho cambiato in vendor / symfony.

Tuttavia, il mio bootstrap.php.cache e bootstrap_cache.php.cache non sono aggiornati, il che ha generato errori.

Ho provato a svuotare la cache di symfony, inutilmente.

Come posso aggiornare questi file per corrispondere al mio progetto?

Nella versione 2.0 il file originale è qui:

./vendor/bundles/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php 

Modifica: nella versione 2.3 il file è qui

 vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php 

Se esegui il comando di composer update del composer update anche le dipendenze del progetto che non sono il comportamento desiderato qui. Se lo fai, dovrai testare le nuove modifiche per vedere se influenzano la tua applicazione in qualche modo.

Quindi, se vuoi solo ribuild il tuo file di cache di bootstrap, ti suggerisco di eseguire il comando post-update-cmd .

Quindi dovresti usare:

 composer run-script post-update-cmd 

che nel mio caso esegue i seguenti script (vedi compositore.json ):

 "scripts": { "post-install-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", "Mopa\\Bundle\\BootstrapBundle\\Composer\\ScriptHandler::postInstallSymlinkTwitterBootstrapSass" ] } 

Tieni presente che puoi anche creare un nuovo set di script per ribuild semplicemente il file di bootstrap e svuotare la cache senza installare le risorse e così via:

 "scripts": { "reset-bootstrap-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache" ] } 

e poi … composer run-script reset-bootstrap-cmd

Nell’ultimo 2.1.0-DEV, lo script attuale è qui:

./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php

Sto usando Symfony Standard 2.0.9 (senza venditori).

Per aggiornare bootstrap.php.cache , basta eseguire

php bin/vendors update

Questo aggiornerà tutti i fornitori (incluso Symfony stesso) e chiamerà sempre build_bootstrap.php script build_bootstrap.php per te.

Hai provato a correre:

 php bin/build_bootstrap.php 

Questo rigenererà i file di bootstrap

Potresti preferire l’ composer install che “re-installa” il sistema allo stato definito nel file composer.lock e generi autoload e bootstrap.php.cache. L’uso composer update aggiorna tutti i pacchetti e cambia lo stato del sistema.

Mi sento come se lo script build_bootstrap cambi sempre posizione 🙂

Quindi, se stai lavorando con diverse versioni di Symfony e non sai dove sia il build_bootstrap, questo farà il trucco (solo per Linux / Mac):

 $ cd vendor/ $ find . -name build_bootstrap.php 

non potevo risolvere un problema sulla mia cache di bootstrap, né aggiornarlo. stavo prendendo molto di questo

[Symfony \ Component \ Debug \ Exception \ ContextErrorException] Attenzione: argomento non valido fornito per foreach () in /home/sites/fuji/app/bootstrap.php.cache line 2870

Script Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: clearCache gestisce l’evento post-update-cmd terminato con un’eccezione

anche se erano ottimi suggerimenti, e ho provato la ricostruzione del file di cache di bootstrap dopo il backup, e per eseguire questi composer update mi ha dato lo stesso problema.

Soluzione per me: ho eseguito il bombardamento nel pc con i file del sito su di esso, rm -rf app/cache/* -R rimosso tutto all’interno della directory della cache quindi sono stato in grado di eseguire sia l’aggiornamento del compositore, E cancellare la cache ecc. Con no i problemi.