52 votes

Symfony2 mise à jour de bootstrap.php.cache

Récemment, j'ai commencé un projet en Symfony2 à partir de la version BETA disponible sur symfony.com.

Après un certain temps, j'ai eu besoin de mettre à jour la branche master, donc j'ai récupéré la dernière version de github et l'ai transférée dans vendor/symfony.

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

J'ai essayé de vider le cache de Symfony, sans succès.

Comment puis-je mettre à jour ces fichiers pour qu'ils correspondent à mon projet ?

1 votes

Voir ma réponse ici : stackoverflow.com/questions/29919275/

67voto

mogoman Points 1129

Dans la version 2.0, le fichier original est ici :

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

Edit : dans la version 2.3 le fichier est ici

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

0 votes

Cela ne semble rien faire dans mon projet lorsque j'exécute le script ci-dessus (c'est aussi après avoir mis à jour les bundles de mes fournisseurs). Avez-vous des idées pour résoudre ce problème ?

0 votes

@Eno avez-vous essayé de supprimer (faites d'abord une sauvegarde) les fichiers de cache de bootstap puis d'exécuter le script ?

14 votes

composer update est tout ce dont vous avez besoin maintenant (Symfony 2.3 + Composer)

64voto

Francesco Casula Points 2508

Si vous exécutez le composer update vous allez également mettre à jour les dépendances de votre projet, ce qui n'est pas le comportement souhaité ici. Si vous faites cela, vous devrez tester les nouveaux changements pour voir s'ils affectent votre application d'une manière ou d'une autre.

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

Vous devez donc utiliser :

composer run-script post-update-cmd

qui dans mon cas exécute les scripts suivants (cf. compositeur.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"
    ]
}

Veuillez considérer que vous pouvez également créer un nouvel ensemble de scripts là-dedans pour juste reconstruire le fichier bootstrap et effacer le cache sans installer les actifs et ainsi de suite :

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

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

4 votes

Meilleure réponse pour symfony >=2.3

28voto

Gregoire Points 1675

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

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

3 votes

Pour la version actuelle 2.1 composer update s'en occupe - le tableau scripts est ajouté à la configuration du compositeur

0 votes

@barius Seulement pour les scripts de Composer prêts à l'emploi, que je n'avais pas, par exemple.

22voto

seb Points 566

J'utilise Symfony Standard 2.0.9 (sans les vendeurs).

Pour mettre à jour bootstrap.php.cache il suffit d'exécuter

php bin/vendors update

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

3 votes

En effet, composer update déclenche le "build bootstrap" script. C'est la réponse actuelle et à jour.

17voto

d.syph.3r Points 1793

Avez-vous essayé de courir :

php bin/build_bootstrap.php

Cela va régénérer les fichiers d'amorçage.

2 votes

Je ne savais pas que c'était là. Merci.

12 votes

Il convient de mentionner que cela ne fonctionne plus. L'ensemble bin/ -Le dossier a disparu.

0 votes

En fait, ce fichier n'est pas disponible, même dans la dernière version 2.0.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X