【问题标题】:Symfony2 updating bootstrap.php.cacheSymfony2 更新 bootstrap.php.cache
【发布时间】:2011-08-29 15:33:41
【问题描述】:

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

一段时间后,我需要升级到master分支,所以我从github上检索了最新的并切换到vendor/symfony。

但是,我的 bootstrap.php.cache 和 bootstrap_cache.php.cache 没有升级,产生了错误。

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

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

【问题讨论】:

标签: symfony


【解决方案1】:

搜索“build_bootstrap.php”所在的位置。

对于我在 Symfony3.4 中的情况

php ./vendor/sensio/distribution-bundle/Resources/bin/build_bootstrap.php

【讨论】:

    【解决方案2】:

    我觉得 build_bootstrap 脚本总是在改变位置 :)

    因此,如果您正在使用多个 Symfony 版本并且不知道 build_bootstrap 在哪里,这将解决问题(仅限 Linux/Mac):

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

    【讨论】:

    • 永远不记得确切的名字,所以每次我都必须输入这个命令。 find . -iname "*build*bootstrap*php"
    【解决方案3】:

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

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

    因此你应该使用:

    composer run-script post-update-cmd
    

    在我的例子中执行以下脚本(参见 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"
        ]
    }
    

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

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

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

    【讨论】:

    • symfony 的最佳答案 >=2.3
    【解决方案4】:

    在 2.0 版本中,原始文件在这里:

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

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

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

    【讨论】:

    • 当我运行上述脚本时,这在我的项目中似乎没有做任何事情(这也是在我更新了供应商的捆绑包之后)。关于解决此问题的任何想法?
    • @Eno 您是否尝试删除(先备份)引导缓存文件然后运行脚本?
    • composer update 是你现在所需要的(Symfony 2.3 + Composer)
    • composer update 还会更新 jihi 要求的依赖项!请检查我的答案。它显示了应该如何完成:stackoverflow.com/a/26337973/828366
    • 对于 2.3(和 3.0),现在是 php vendor/sensio/distribution-bundle/Resources/bin/build_bootstrap.php
    【解决方案5】:

    我无法修复引导缓存的问题,也无法更新它。我得到了很多这个

    [Symfony\Component\Debug\Exception\ContextErrorException] 警告:在 /home/sites/fuji/app/bootstrap.php.cache 第 2870 行中为 foreach() 提供的参数无效

    脚本 Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 处理 post-update-cmd 事件因异常而终止

    虽然它们是很好的建议,但我确实在备份后尝试重建引导缓存文件,并运行 composer update 这些仍然给了我同样的问题。

    我的解决方案: 我用上面的网站文件冲进了电脑, rm -rf app/cache/* -R 删除了缓存目录中的所有内容,然后我能够运行作曲家更新和清除缓存等。没有问题。

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

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

        【讨论】:

        • 对于当前的 2.1 composer update 负责处理 - 脚本数组被添加到作曲家配置中
        • @barius 仅适用于开箱即用的 Composer 脚本,例如我没有。
        【解决方案8】:

        我使用的是 Symfony Standard 2.0.9(没有供应商)。

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

        php bin/vendors update

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

        【讨论】:

        • 确实,composer update 触发了“构建引导”脚本。这是当前最新的答案。
        【解决方案9】:

        你试过跑步吗:

        php bin/build_bootstrap.php
        

        这将重新生成引导文件

        【讨论】:

        • 不知道那里有。谢谢!
        • 值得一提的是,这不再起作用了。整个bin/-文件夹现在已经消失了。
        • 其实这个文件在最新的2.0中也没有
        • 现在,build_bootstrap.php 有点隐蔽...php ./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
        猜你喜欢
        • 1970-01-01
        • 2015-08-02
        • 2012-10-10
        • 2015-08-27
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多