Я запустил composer update и теперь получаю множество предупреждений об устаревании:
> [2019-06-03 18:08:41] request.INFO: Matched route "_wdt".
> {"route":"_wdt","route_parameters":{"_route":"_wdt","_controller":"web_profiler.controller.profiler::toolbarAction","token":"9354bc"},"request_uri":"http://local
> host:8080/_wdt/9354bc","method":"GET"} [] [2019-06-03 18:08:42]
> request.CRITICAL: Uncaught PHP Exception Twig\Error\RuntimeError:
> "Impossible to access an attribute ("nb_errors") on a string variable
> ("O:39:"Symfony\Component\VarDumper\Cloner\Data":6:{s:45:"ymf
> ony\Component\VarDumper\Cloner\Data
Панель инструментов веб-профилировщика не работает с этой ошибкой:
An error occurred while loading the web debug toolbar.
И все же, когда я это делаю bin/console --version, я получаю:
Symfony 4.3.0 (env: dev, debug: true)
Что дает? А как насчет файла композитор.json, который дает Композитор возможность обновляться даже до 4.3?
Вот мой текущий композитор.json:
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"doctrine/doctrine-migrations-bundle": "^2.0",
"easycorp/easyadmin-bundle": "^1.17",
"iio/libmergepdf": "~3.0",
"ramsey/uuid": "^3.5",
"sensio/framework-extra-bundle": "^5.1",
"sensiolabs/security-checker": "^5.0",
"simplisti/jasper-starter": "dev-master",
"symfony/asset": "4.2.*",
"symfony/console": "4.2.*",
"symfony/dotenv": "4.2.*",
"symfony/expression-language": "4.2.*",
"symfony/flex": "^1.1",
"symfony/form": "4.2.*",
"symfony/framework-bundle": "4.2.*",
"symfony/ldap": "^4.0",
"symfony/monolog-bundle": "^3.3",
"symfony/options-resolver": "^4.0",
"symfony/orm-pack": "*",
"symfony/process": "4.2.*",
"symfony/security-bundle": "4.2.*",
"symfony/swiftmailer-bundle": "^3.1",
"symfony/yaml": "4.2.*"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.0",
"phing/phing": "^2.14",
"symfony/browser-kit": "^4.0",
"symfony/css-selector": "^4.0",
"symfony/debug": "^4.0",
"symfony/debug-pack": "^1.0",
"symfony/maker-bundle": "^1.7",
"symfony/phpunit-bridge": "^4.0",
"symfony/profiler-pack": "^1.0"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"classmap": [
"src/Legacy/"
],
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd",
"security-checker security:check": "script"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"id": "01C3XNQSBGC1MSASSGCW6TKGXB",
"allow-contrib": false
}
}
}
4.2.9 в пятницу...сейчас как-то 4.3.0?!? Вы видите что-нибудь очевидное в моем composer.json в OP?
Немного загадки, если не сказать больше. Я взял свежую 4.2.8 и запустил обновление композитора. Как и ожидалось, я получил 4.2.9. Снова запустил обновление, и оно осталось на 4.2.9. В вашем файле composer.json есть несколько ^4.0. Мой нет. Мне редко удается восстановить поврежденные файлы composer.json. Возможно, стоит рассмотреть возможность установки нового проекта 4.2.9, а затем объединить ваши дополнительные зависимости в готовый composer.json.
Вот о чем я думал ... спасибо за подтверждение моей догадки или предположения, ха-ха :)




Это проблема в vendor/symfony/web-profiler-bundle/Resources/views/Collector/form.html.twig
Пытаюсь получить доступ к collector.data.nb_errors, но collector.data это null.
Вы нашли решение? Столкнулся с той же проблемой, но не знаю, что делать, чтобы исправить это
@rebru у нас работал принятый комментарий.
Откройте файл composer.json. Обновите все ссылки 4.2 до 4.3. Вероятно, у вас есть symfony/web-profiler-bundle версии 4.2 вместо 4.3. Сохраните, затем обновите композитор.
Все в значительной степени 4.2. * Не знаете, как 4.3.0 вообще попал туда? Я несколько раз удалял /vendor и composer install... видите что-нибудь очевидное в моем composer.json, добавленном в OP?
Это решение сработало для меня. Большое спасибо @afessler! Я обновлял Symfony версии 4.2.* до 4.4.*. Перед запуском скрипта обновления композитора я изменил только "require" с 4.2.* на 4.4.*. Среди других проблем, с которыми я столкнулся, мне также нужно увидеть веб-профилировщик, который не показывался. Следуя этой инструкции, мне пришлось изменить все ссылки с 4.2.* на 4.4.*, чтобы все снова заработало. С этим обновлением мне пришлось изменить use Symfony\Bridge\Doctrine\RegistryInterface; на use Doctrine\Common\Persistence\ManagerRegistry; для классов репозитория.
Я немного опоздал, но если вы хотите сохранить symfony 4.2, вам просто нужно заменить все ваши зависимости symfony с "^4" на "4.2.*" в composer.json
Например, в вашем json у вас есть
"symfony/ldap": "^4.0", поэтому, когда вы запустите composer show, вы увидите, что некоторые зависимости обновляются до 4.3 с помощью composer update.
С какой версии вы обновлялись? Я сделал быстрый тест на свежем проекте 4.3, не сталкиваясь с этими предупреждениями.