Symfony2 mettant à jour bootstrap.php.cache

Récemment, j’ai lancé un projet dans Symfony2 à partir de la version BETA disponible sur symfony.com

Après un certain temps, je devais passer à la twig master, donc j’ai récupéré la dernière version de github et je l’ai basculée dans vendor / symfony.

Cependant, mes fichiers bootstrap.php.cache et bootstrap_cache.php.cache ne sont pas mis à niveau, ce qui a généré des erreurs.

J’ai essayé de vider le cache symfony, en vain.

Comment puis-je mettre à jour ces fichiers pour correspondre à mon projet?

Dans la version 2.0, le fichier d’origine est ici:

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

Edit: dans la version 2.3, le fichier est ici

 vendor/sensio/dissortingbution-bundle/Sensio/Bundle/DissortingbutionBundle/Resources/bin/build_bootstrap.php 

Si vous exécutez la commande composer update vous mettrez également à jour les dépendances de votre projet, ce qui n’est pas le comportement souhaité. Si vous le faites, vous devrez tester les nouvelles modifications pour voir si elles affectent votre application.

Donc, si vous voulez simplement reconstruire votre fichier de cache bootstrap, alors je vous suggère d’exécuter la commande post-update-cmd .

Par conséquent, vous devriez utiliser:

 composer run-script post-update-cmd 

qui dans mon cas exécute les scripts suivants (voir composer.json ):

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

Veuillez considérer que vous pouvez également créer un nouvel ensemble de scripts pour simplement reconstruire le fichier bootstrap et effacer le cache sans installer les ressources, etc.:

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

et puis … composer run-script reset-bootstrap-cmd

Dans la dernière version 2.1.0-DEV, le script actuel est ici:

./vendor/sensio/dissortingbution-bundle/Sensio/Bundle/DissortingbutionBundle/Resources/bin/build_bootstrap.php

J’utilise Symfony Standard 2.0.9 (sans fournisseurs).

Pour mettre à jour bootstrap.php.cache , lancez simplement

php bin/vendors update

Cela mettra à jour tous les fournisseurs (y compris Symfony lui-même) et appellera toujours ce script build_bootstrap.php pour vous.

Avez-vous essayé de courir:

 php bin/build_bootstrap.php 

Cela va régénérer les fichiers bootstrap

Vous préférerez peut-être utiliser le composer install qui “ré-installe” le système dans l’état défini dans le fichier composer.lock et génère autoloads et bootstrap.php.cache. L’utilisation de la composer update jour de composer update jour tous les packages et modifie l’état de votre système.

J’ai l’impression que le script build_bootstrap change toujours d’emplacement 🙂

Donc, si vous travaillez avec plusieurs versions de Symfony et que vous ne savez pas où est build_bootstrap, cela fera l’affaire (Linux / Mac uniquement):

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

Je ne pouvais pas résoudre un problème sur mon cache bootstrap, ni le mettre à jour. Je devenais beaucoup de cela

[Symfony \ Component \ Debug \ Exception \ ContextErrorException] Avertissement: Argument non valide fourni pour foreach () dans /home/sites/fuji/app/bootstrap.php.cache ligne 2870

Script Sensio \ Bundle \ DissortingbutionBundle \ Composer \ ScriptHandler :: clearCache gérant l’événement post-update-cmd terminé avec une exception

Bien que c’étaient d’excellentes suggestions, et j’ai essayé de reconstruire le fichier cache bootstrap après l’avoir sauvegardé, et pour exécuter la composer update cela me donnait toujours le même problème.

Solution pour moi: j’ai bombardé le PC avec les fichiers du site, rm -rf app/cache/* -R supprimé tout ce qui se trouvait dans le répertoire cache et j’ai pu lancer la mise à jour du composeur, ET effacer le cache etc. problèmes.