我遇到了一个问题,因为我在Symfony2安装上更新了我的供应商。
这是我的composer.json的内容:
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.4",
"symfony/symfony": ">=2.4",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": ">=1.2",
"twig/extensions": ">=1.0",
"symfony/assetic-bundle": ">=2.3",
"symfony/swiftmailer-bundle": ">=2.3",
"symfony/monolog-bundle": ">=2.4",
"sensio/distribution-bundle": ">=2.3",
"sensio/framework-extra-bundle": ">=3.0",
"sensio/generator-bundle": ">=2.3",
"incenteev/composer-parameter-handler": "~2.0",
"white-october/pagerfanta-bundle": "dev-master",
"friendsofsymfony/rest-bundle": "1.3.*",
"friendsofsymfony/comment-bundle": "2.0.*@dev",
"friendsofsymfony/message-bundle": "1.2.*@dev",
"friendsofsymfony/user-bundle": "~2.0@dev",
"nelmio/api-doc-bundle": "@stable",
"ornicar/akismet-bundle": "dev-master",
"friendsofsymfony/jsrouting-bundle": "2.0.*@dev",
"appventus/alertify-bundle": "dev-master",
"friendsofsymfony/oauth-server-bundle": "dev-master",
"willdurand/propel-typehintable-behavior": "*",
"hwi/oauth-bundle": "0.4.*@dev",
"nomaya/social-bundle": "dev-master"
}
}
在php composer.phar update
之后,当我尝试/app.php时,我遇到以下错误:
Deprecated: The Symfony\Component\Security\Core\SecurityContextInterface interface is deprecated since version 2.6 and will be removed in 3.0. in /var/www/html/xxx/app/cache/prod/classes.php on line 3035
Deprecated: The Symfony\Component\Security\Core\SecurityContext class is deprecated since version 2.6 and will be removed in 3.0. Use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage or Symfony\Component\Security\Core\Authorization\AuthorizationChecker instead. in /var/www/html/xxx/app/cache/prod/classes.php on line 3047
Fatal error: Uncaught exception 'Symfony\Component\Debug\Exception\ContextErrorException' with message 'Catchable
Fatal Error: Argument 1 passed to Symfony\Component\Routing\Router::Symfony\Component\Routing\{closure}() must be an instance of Symfony\Component\Config\ConfigCacheInterface, instance of Symfony\Component\Config\ConfigCache given' in /var/www/html/xxx/app/cache/prod/classes.php:1302
Stack trace:
#0 /var/www/html/xxx/app/cache/prod/classes.php(1302): Symfony\Component\Debug\ErrorHandler->handleError(4096, 'Argument 1 pass...', '/var/www/html/p...', 1302, Array)
#1 [internal function]: Symfony\Component\Routing\Router->Symfony\Component\Routing\{closure}(Object(Symfony\Component\Config\ConfigCache))
#2 /var/www/html/xxx/vendor/symfony/symfony/src/Symfony/Component/Config/ConfigCacheFactory.php(46): call_user_func(Object(Closure), Object(Symfony\Component\Config\ConfigCache))
#3 /var/www/html/xxx/app/cache/prod/classes.php(1313): Symfony\Component\Config\ConfigCacheFactory->cache('/var/ww in /var/www/html/xxx/app/cache/prod/classes.php on line 5261
当我去/app_dev.php时我有这个:
Whoops, looks like something went wrong.
1/1
FatalErrorException in ConfigDataCollector.php line 276:
Error: Undefined class constant 'END_OF_MAINTENANCE'
我的PHP版本在Apache / 2.2.15上是5.6.9。
有人有线索吗?
由于 克努特
答案 0 :(得分:9)
我通过重新生成bootstrap.php.cache(通过运行composer update / composer install,或直接通过脚本)解决了这个问题。
答案 1 :(得分:2)
你可以试试这个:
php composer.phar self-update
前
php composer.phar update
答案 2 :(得分:1)
问题是我的不同供应商之间不兼容,我已将我的composer.json更新为:
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.4",
"symfony/symfony": ">=2.4",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": ">=1.2",
"twig/extensions": ">=1.0",
"symfony/assetic-bundle": ">=2.3",
"symfony/swiftmailer-bundle": ">=2.3",
"symfony/monolog-bundle": ">=2.4",
"sensio/distribution-bundle": ">=2.3",
"sensio/framework-extra-bundle": ">=3.0",
"sensio/generator-bundle": ">=2.3",
"incenteev/composer-parameter-handler": "~2.0",
"white-october/pagerfanta-bundle": "dev-master",
"friendsofsymfony/rest-bundle": "1.3.*",
"friendsofsymfony/comment-bundle": "2.0.*@dev",
"friendsofsymfony/message-bundle": "1.2.*@dev",
"friendsofsymfony/user-bundle": "~2.0@dev",
"nelmio/api-doc-bundle": "@stable",
"ornicar/akismet-bundle": "dev-master",
"friendsofsymfony/jsrouting-bundle": "2.0.*@dev",
"appventus/alertify-bundle": "dev-master",
"friendsofsymfony/oauth-server-bundle": "dev-master",
"willdurand/propel-typehintable-behavior": "*",
"hwi/oauth-bundle": "0.4.*@dev",
"nomaya/social-bundle": "dev-master"
}
}
所有作品......
感谢。
答案 3 :(得分:0)
尝试:
rm /var/www/html/xxx/app/cache/prod/* -rf
答案 4 :(得分:0)
对于它的价值,我在升级symfony(从2.6升级到2.8)后遇到了这个问题,这是在一个流浪客人身上运行。
问题确实存在于app/bootstrap.php.cache
文件中。在我们的案例中,我们rsync
没有排除它,这意味着如果主持人还没有更新composer
问题会再次发生。它是通过从我们的Vagrantfile中的bootstrap.php.cache
中排除rsync
来解决的:
config.vm.synced_folder "host/path", "guest/path", type: "rsync",
rsync__exclude: [ 'bootstrap.php.cache'],
此文件由composer
生成,因此在来宾上运行sudo composer install
或sudo composer update
会重新生成它。
希望这能节省一些时间。