0

我目前正在尝试升级到 Symfony 2.6。一切都很顺利,除了运行 composer.phar update 后出现此错误

 [Symfony\Component\Debug\Exception\ContextErrorException]                                                                                                                                                  
  Warning: Missing argument 1 for Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration::__construct(), called in src/Application/Sonata/UserB  
  undle/DependencyInjection/ApplicationSonataUserExtension.php on line 23 and defined  

但是,在...中没有任何__construct()功能Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration

我的代码ApplicationSonataUserExtension.php是:

<?php

namespace  Application\Sonata\UserBundle\DependencyInjection;

use Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;

/**
 * This is the class that loads and manages your bundle configuration
 *
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
 */
class ApplicationSonataUserExtension extends Extension
{
    /**
     * {@inheritDoc}
     */
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
    }
}

我真的一点头绪都没有...

4

1 回答 1

1

与 Symfony 2.5 不同,2.6 实际上 __construct()方法 in Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration,其参数表示调试模式,根据this。因此,添加 bool 变量Configuration应该可以解决问题。

$configuration = new Configuration(TRUE); //or FALSE, if it's in prod

要自动轻松地获得调试模式,您可以使用以下内容:

$env = $container->getParameter("kernel.environment");
$debug = ( $env === 'dev' ) ? TRUE : FALSE;
于 2014-12-13T14:29:04.430 回答