Symfony-FOSUserBundle纵断面图在更新到Symfony 2.8后不工作
我已经将我的Symfony项目从2.6版升级到2.8版,之后,当我请求纵断面图时,我收到一个错误500。错误是:Symfony-FOSUserBundle纵断面图在更新到Symfony 2.8后不工作,symfony,fosuserbundle,symfony-2.8,Symfony,Fosuserbundle,Symfony 2.8,我已经将我的Symfony项目从2.6版升级到2.8版,之后,当我请求纵断面图时,我收到一个错误500。错误是: Error: Call to a member function has() on null Stack Trace in vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php at line 350 - */ public function getUser()
Error: Call to a member function has() on null
Stack Trace in vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php at line 350 -
*/
public function getUser()
{
if (!$this->container->has('security.token_storage')) {
throw new \LogicException('The SecurityBundle is not registered in your application.');
}
运行composer show-I时,我会看到下一个列表:
You are using the deprecated option "installed". Only installed packages are shown by default now. The --all option can be used to show all packages.
doctrine/annotations v1.4.0 Docblock Annotations Parser
doctrine/cache v1.6.2 Caching library offering a...
doctrine/collections v1.4.0 Collections Abstraction li...
doctrine/common v2.7.3 Common Library for Doctrin...
doctrine/dbal v2.5.13 Database Abstraction Layer
doctrine/doctrine-bundle 1.8.1 Symfony DoctrineBundle
doctrine/doctrine-cache-bundle 1.3.2 Symfony Bundle for Doctrin...
doctrine/inflector v1.1.0 Common String Manipulation...
doctrine/instantiator 1.0.5 A small, lightweight utili...
doctrine/lexer v1.0.1 Base library for a lexer t...
doctrine/orm v2.5.14 Object-Relational-Mapper f...
friendsofsymfony/jsrouting-bundle 1.5.3 A pretty nice way to expos...
friendsofsymfony/oauth-server-bundle 1.5.0 Symfony2 OAuth Server Bundle
friendsofsymfony/oauth2-php 1.2.2 OAuth2 library
friendsofsymfony/user-bundle dev-master 9b3be01 Symfony FOSUserBundle
incenteev/composer-parameter-handler v2.1.2 Composer script handling y...
ircmaxell/password-compat v1.0.4 A compatibility library fo...
jdorn/sql-formatter v1.2.17 a PHP SQL highlighting lib...
jms/aop-bundle 1.3.0 Adds AOP capabilities to S...
jms/cg 1.2.0 Toolset for generating PHP...
jms/di-extra-bundle 1.9.1 Allows to configure depend...
jms/metadata 1.6.0 Class/method/property meta...
jms/parser-lib 1.0.0 A library for easily creat...
jms/security-extra-bundle dev-master c4a5dda Enhances the Symfony2 Secu...
knplabs/knp-snappy v1.0.4 PHP5 library allowing thum...
knplabs/knp-snappy-bundle v1.5 Easily create PDF and imag...
kriswallsmith/assetic v1.4.0 Asset Management for PHP
liuggio/ExcelBundle v2.1.0 This is a Symfony2 Bundle ...
monolog/monolog 1.23.0 Sends your logs to files, ...
paragonie/random_compat v2.0.11 PHP 5.x polyfill for rando...
phpoffice/phpexcel 1.8.1 PHPExcel - OpenXML - Read,...
phpoption/phpoption 1.5.0 Option Type for PHP
phpunit/php-code-coverage 1.2.18 Library that provides coll...
phpunit/php-file-iterator 1.4.5 FilterIterator implementat...
phpunit/php-text-template 1.2.1 Simple template engine.
phpunit/php-timer 1.0.9 Utility class for timing
phpunit/php-token-stream 1.2.2 Wrapper around PHP's token...
phpunit/phpunit 3.7.38 The PHP Unit Testing frame...
phpunit/phpunit-mock-objects 1.2.3 Mock Object library for PH...
psr/log 1.0.2 Common interface for loggi...
sensio/distribution-bundle v2.3.22 The base bundle for the Sy...
sensio/framework-extra-bundle v3.0.29 This bundle provides a way...
sensio/generator-bundle v2.5.3 This bundle generates code...
stripe/stripe-php v3.23.0 Stripe PHP Library
swiftmailer/swiftmailer v5.4.9 Swiftmailer, free feature-...
symfony/assetic-bundle v2.8.2 Integrates Assetic into Sy...
symfony/monolog-bundle v2.12.1 Symfony MonologBundle
symfony/polyfill-intl-icu v1.7.0 Symfony polyfill for intl'...
symfony/polyfill-mbstring v1.7.0 Symfony polyfill for the M...
symfony/polyfill-php54 v1.7.0 Symfony polyfill backporti...
symfony/polyfill-php55 v1.7.0 Symfony polyfill backporti...
symfony/polyfill-php56 v1.7.0 Symfony polyfill backporti...
symfony/polyfill-php70 v1.7.0 Symfony polyfill backporti...
symfony/polyfill-util v1.7.0 Symfony utilities for port...
symfony/security-acl v2.8.0 Symfony Security Component...
symfony/swiftmailer-bundle v2.6.7 Symfony SwiftmailerBundle
symfony/symfony v2.8.0 The Symfony PHP framework
twig/extensions v1.5.1 Common additional features...
twig/twig v1.35.0 Twig, the flexible, fast, ...
willdurand/jsonp-callback-validator v1.1.0 JSONP callback validator.
我已经研究了好几个小时了,还没有找到关于这个错误的有用信息
提前感谢。问题出在您的控制器上。可能它们扩展了自2.8版以来就不推荐使用的Symfony\Component\DependencyInjection\ContainerWare。删除此项并使用Symfony\Component\DependencyInjection\ContainerWareTrait 编辑:Cerad在评论中是正确的: 不需要重写从控制器扩展的现有控制器。问题出在第三方包中,比如FOSUserBundle,它不从控制器扩展。但是,即使它们仍应在2.8下工作,或至少给出不同的错误 这两种情况都应该有效 参考资料: ->集装箱码头
您正在使用与2.8不再兼容的用户包的开发主机。您需要使用2.x标记版本中的一个,但我不确定是哪一个。顺便说一下,错误来自容器不再被注入控制器这一事实。虽然我不知道为什么不注射。谢谢你的评论@Cerad。我将捆绑包降级为2.0.1版本,但出现了相同的错误。我怀疑您已经很久没有更新依赖项了?我怀疑您的一些其他捆绑包也需要更新。我建议您创建一个新的2.8项目,然后要求每个依赖项生成一个新的composer.json文件。谢谢您的回复。当然,我的bundle没有实现该接口。我的Bundle看起来像类MyController extensed Controller,其中use语句是use-Symfony\Bundle\FrameworkBundle\Controller\Controller;。我是否必须重写所有控制器才能解决此问题?请尝试重写一个出现错误的控制器,以查看其是否可以解决。您可以保留extend:class MyBundleControl扩展控制器实现ContainerWareInterface{@Airam否,不需要重写从控制器扩展的现有控制器。问题在于像FOSUserBundle这样不从控制器扩展的第三方捆绑包。但是,即使它们在2.8下仍然可以工作,或者至少会产生不同的错误。对于2.8,您需要它。FOS用户捆绑包控制器只需扩展主sym没有这样做的fony控制器。Symfony v3主控制器使用该特性,因此我猜FOS用户包无法与Symfony v2.8兼容。升级到v3.0或降级到v2。7@JannesBotis实际上,FOSUserBundle 1.x是从ContainerWare扩展而来的。对于2.x来说,它们是从Controller扩展而来的。然而,1.x的东西之所以如此,还有很多其他原因在S2.8上不起作用。1.x版本在S3.0中也不起作用。基本上,op面临的问题是将FOSUserBundle从1.x升级到2.x,同时处理S2.8引入的各种其他BC中断。不仅是FOSUserBundle,还有许多其他第三方包。这是一个混乱。
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
class MyBundleController implements ContainerAwareInterface {
use ContainerAwareTrait;
/**
* @Route("/", name="_index")
* @Template()
*/
public function indexAction() {
var_dump($this->container);
return array();
}
}