Symfony-FOSUserBundle纵断面图在更新到Symfony 2.8后不工作

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()

我已经将我的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()
{
    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(); 
    }
}