Symfony2更新bootstrap.php.cache

jih*_*ihi 52 symfony

最近,我从symfony.com上的BETA版本开始了Symfony2的一个项目

过了一会儿,我需要升级到master分支,所以我从github中检索了最新的并在vendor/symfony中切换了它.

但是,我的bootstrap.php.cache和bootstrap_cache.php.cache未升级,这会产生错误.

我尝试清除symfony缓存,但无济于事.

如何更新这些文件以与我的项目相对应?

mog*_*man 67

在2.0版本中,原始文件位于:

./vendor/bundles/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
Run Code Online (Sandbox Code Playgroud)

编辑:在2.3版本中,文件在这里

vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
Run Code Online (Sandbox Code Playgroud)

  • `composer update`就是你现在所需要的(Symfony 2.3 + Composer) (14认同)
  • `composer update`还会更新**jihi**所要求的依赖关系!请检查我的答案.它显示了应该如何完成:http://stackoverflow.com/a/26337973/828366 (3认同)
  • 对于2.3(和3.0)它现在是`php vendor/sensio/distribution-bundle/Resources/bin/build_bootstrap.php` (2认同)

Fra*_*ula 60

如果运行该composer update命令,您还将更新项目依赖项,这不是此处所需的行为.如果你这样做,你将不得不测试新的更改,看看它们是否确实会以某种方式影响你的应用程序.

因此,如果您只想重建引导缓存文件,那么我建议您运行post-update-cmd命令.

因此你应该使用:

composer run-script post-update-cmd
Run Code Online (Sandbox Code Playgroud)

在我的例子中执行以下脚本(请参阅composer.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"
    ]
}
Run Code Online (Sandbox Code Playgroud)

请考虑您还可以在其中创建一组新脚本来重建引导程序文件并清除缓存而不安装资产等等:

"scripts": {
    "reset-bootstrap-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache"
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后... composer run-script reset-bootstrap-cmd

  • symfony> = 2.3的最佳答案 (4认同)

Gre*_*ire 27

在最新的2.1.0-DEV中,实际的脚本在这里:

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

  • 对于当前的2.1` composer update`来处理它 - 脚本数组被添加到composer配置中 (3认同)

seb*_*seb 22

我正在使用Symfony Standard 2.0.9(没有供应商).

要更新bootstrap.php.cache,只需运行

php bin/vendors update

这将更新所有供应商(包括Symfony本身)并始终build_bootstrap.php为您调用该脚本.

  • 实际上,`composer update`会触发"build bootstrap"脚本.这是目前最新的答案. (3认同)

d.s*_*.3r 17

你试过跑步了吗:

php bin/build_bootstrap.php
Run Code Online (Sandbox Code Playgroud)

这将重新生成引导程序文件

  • 值得一提的是,这不再适用了.整个`bin /`文件夹现在消失了. (12认同)
  • 现在,`build_bootstrap.php`有点隐藏......`php./ vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php` (5认同)
  • 不知道那是在那里.谢谢! (2认同)

小智 11

您可能更喜欢使用composer install哪个"重新安装"系统到composer.lock文件中定义的状态并生成自动加载和bootstrap.php.cache.使用composer update更新所有包并更改系统的状态.