Symfony2更新bootstrap.php.cache
最近我从Symfony.com上的BETA版本开始了Symfony2的一个项目
过了一段时间,我需要升级到master分支,所以我从github中获取最新的信息,并将其切换到vendor / symfony。
但是,我的bootstrap.php.cache和bootstrap_cache.php.cache没有升级,这已经产生了错误。
我尝试清除symfonycaching,无济于事。
我如何更新这些文件以符合我的项目?
在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
如果您运行composer update
命令,您也将更新您的项目依赖关系,这不是所需的行为。 如果你这样做,你将不得不testing新的变化,看看他们是否确实影响你的应用程序。
所以如果你只是想重build你的引导caching文件,那么我build议你运行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" ] }
请考虑您也可以在那里创build一组新的脚本,以重build引导文件并清除caching而不安装资产等等:
"scripts": { "reset-bootstrap-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache" ] }
然后… composer run-script reset-bootstrap-cmd
在最新的2.1.0-DEV中,实际的脚本在这里:
./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
我正在使用Symfony标准2.0.9(没有供应商)。
要更新bootstrap.php.cache
,只需运行
php bin/vendors update
这将更新所有供应商(包括Symfony本身),并始终为您调用build_bootstrap.php
脚本。
你尝试过运行:
php bin/build_bootstrap.php
这将重新生成引导文件
您可能更喜欢使用composer install
来将系统“重新安装”到composer.lock
文件中定义的状态,并生成autoloads和bootstrap.php.cache。 使用composer update
更新所有软件包并更改您的系统的状态。
我觉得build_bootstrap脚本总是改变位置:)
所以,如果你正在使用几个Symfony版本,并且不知道build_bootstrap在哪里,那么这个技巧就可以实现(只有Linux / Mac):
$ cd vendor/ $ find . -name build_bootstrap.php
我不能修复引导caching中的问题,也不能更新它。 我得到了很多这个
[Symfony \ Component \ Debug \ Exception \ ContextErrorException]警告:在/home/sites/fuji/app/bootstrap.php.cache中为foreach()提供的参数无效2870行
处理post-update-cmd事件的脚本Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: clearCache以exception终止
虽然他们是伟大的build议,我做了备份后尝试重build引导caching文件,并运行composer update
这些仍然给了我同样的问题。
对我来说,我的解决scheme:我把它的网站上的文件, rm -rf app/cache/* -R
删除一切内的caching目录,然后我就能够运行composer php更新,清除caching等..没有问题。
- 如何在Symfony2 Twig模板中获取configuration参数
- Symfony2停止Composer将parameters.yml.dist安装到parameters.yml中
- 使用symfony2进行Facebook + UserBundlevalidation
- 如何使用JMSSerializerBundle创build一个好的超媒体格式?
- symfony2 – 如何从“dev”切换到“prod”?
- 如何使用break或在Twig模板中的for循环继续?
- 如何禁用Symfony 2分析器栏?
- 多个FOSUserBundle的实体pipe理器
- 为什么更新composer php的依赖关系是如此之慢?