Обновление до Symfony 2.6 вызывает проблему с ApplicationSonataUserExtension

В настоящее время я пытаюсь перейти на Symfony 2.6. Все прошло гладко, за исключением того, что я получил эту ошибку после запуска обновления composer.phar

 [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');
}
}

Я действительно понятия не имею …

0

Решение

В отличие от Symfony 2.5, 2.6 на самом деле имеет __construct() метод в Symfony\Bundle\FrameworkBundle\DependencyInjection\Configurationи его аргумент представляет режим отладки, в соответствии с этот. Итак, добавив переменную bool в Configuration должен решить проблему.

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

Чтобы автоматически получить режим отладки, вы можете использовать что-то вроде:

$env = $container->getParameter("kernel.environment");
$debug = ( $env === 'dev' ) ? TRUE : FALSE;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]