В Symfony2 обновлении начальной загрузки.РНР.кэш
недавно я запустил проект в Symfony2 из бета-версии, доступной на symfony.com
через некоторое время мне нужно было перейти на главную ветку, поэтому я извлек последнюю из github и переключил ее в vendor/symfony.
мое ушко.РНР.кэш и bootstrap_cache.РНР.кэш не обновляется, что привело к возникновению ошибок.
Я попытался очистить кэш symfony, но безрезультатно.
Как я могу обновить эти файлы, чтобы соответствовать к моему проекту?
8 ответов:
в версии 2.0 исходный файл находится здесь:
./vendor/bundles/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.phpEdit: в выпуске 2.3 файл находится здесь
vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
если вы запустите
composer updateкоманда вы также будете обновлять свои зависимости проекта, который не является желаемым поведением здесь. Если вы это сделаете, вам придется протестировать новые изменения, чтобы увидеть, влияют ли они на ваше приложение каким-то образом.поэтому, если вы просто хотите восстановить свой файл кэша начальной загрузки, я предлагаю вам запустить post-update-cmd.
поэтому вы должны использовать:
composer run-script post-update-cmdв моем случае выполняет следующие сценарии (см. композитор.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
в последнем 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файл и генерирует автозагрузку и bootstrap.РНР.кэш. Используяcomposer updateобновляет все пакеты и изменяет состояние системы.
Я чувствую, что скрипт build_bootstrap всегда меняет местоположение :)
Итак, если вы работаете с несколькими версиями Symfony и не знаете, где находится build_bootstrap, это сделает трюк (только для Linux / Mac):
$ cd vendor/ $ find . -name build_bootstrap.php
Я не мог исправить проблему на моем загрузочном кэше, ни обновить его . я получал много этого
[Symfony\Component\Debug\Exception\ContextErrorException] Предупреждение: неверный аргумент, предоставленный для foreach () в /home/sites/fuji/app/bootstrap.РНР.строки кэша 2870
сценарий Sensio\Bundle\DistributionBundle\Composer\ScriptHandler:: clearCache обработка события post-update-cmd завершается с исключением
хотя они были отличные предложения, и я попробовал перестроить файл кэша начальной загрузки после его резервного копирования и запустить
composer updateОни все еще давали мне ту же проблему.решение для меня: я обстрелял компьютер с файлами сайта на нем,
rm -rf app/cache/* -Rудалил все внутри каталога кэша, после чего я смог запустить как обновление composer, так и очистить кэш и т. д.. без проблем.
Comments