Отключить устаревшее предупреждение в Symfony 2 (.7)

Несогласованные зависимости библиотек от самой популярной ошибки в управлении зависимостями.

Требуется commons-lang3-3.1.jar для устранения ошибки.

Посмотрите, как создать приложение Struts с помощью Maven

g0].

29
задан Matteo 4 March 2015 в 09:41
поделиться

5 ответов

У меня та же проблема, и я решил ее аналогично ссылке ниже. Symfony объявляет о том, что сообщает обо всех ошибках, и переопределяет то, что вы положили в php.ini, по своему дизайну (в противном случае он не может поймать и отобразить для вас хорошие трассировки стека).

Итак, вам нужно переопределить встроенную отчетность Symfony2 об ошибках, создав функцию init() в вашем AppKernel.php и установив error_reporting, как вам нужно , а также с (возможно) некоторым определением среды, чтобы убедиться, что вы не отображаете ошибки при работе, например:

// Add this to app/AppKernel.php
public function init()
{
    if ($this->debug) {
        ini_set('display_errors', 1);
        error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
    } else {
        ini_set('display_errors', 0);
    }
}

Подробнее здесь (используйте Google Translate, если вы не читаете по-русски :) http : //tokarchuk.ru/2012/12/disable-deprecated-warnings-in-symfony-2/

16
ответ дан phpguru 4 March 2015 в 09:41
поделиться

Унаследованная функция Appneller Kernel :: init () сама по себе устарела, поэтому ее изменение не является жизнеспособным долгосрочным решением.

Вы можете легко переопределить сообщение об ошибке, изменив вызов на Debug :: enable (); и в app / console, и в web / app_dev.php вот так.

Измените

Debug::enable();

на

Debug::enable(E_RECOVERABLE_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, false);

Это оставит все другие сообщения об ошибках в такте при подавлении устаревших предупреждений. И вам вообще не нужно связываться с Ядром.

45
ответ дан James Grundner 4 March 2015 в 09:41
поделиться

Обратите внимание, что отключение предупреждений об устаревании с помощью error_reporting () или Debug :: enable () не помешает их регистрации в dev.log . Чтобы отключить их регистрацию, вам нужно изменить уровень записи в вашем обработчике монолога на «предупреждение» (предупреждения об устаревании записываются как «информация» в канале «php»).

В качестве альтернативы, чтобы предотвратить влияние других журналов, вы можете создать отдельный обработчик монологов с другим уровнем для канала «php», например

.
monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
            formatter: monolog.formatter.session_request
            channels: '!php'
        php:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: warning
            formatter: monolog.formatter.session_request
            channels: 'php'
8
ответ дан Dimosthenis Nikoudis 4 March 2015 в 09:41
поделиться

В моем случае я не мог скрыть устаревшее предупреждение, не используя переменную окружения SYMFONY_DEPRECATIONS_HELPER.

Измените phpunit.xml на

<phpunit>
    <!-- ... -->

    <php>
        <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/>
    </php>
</phpunit>

. Тогда у вас будет только одно сообщение типа «Оставшиеся уведомления об устаревании (x)», которое не считается тестовым провалом.

Надеюсь, это поможет.

35
ответ дан n3k 4 March 2015 в 09:41
поделиться

Ключ конфигурации twig.form был удален в новой версии Twig. Поэтому вы должны заменить ключ в вашем config.yml

 ///DEPRECATED : 

  twig:
     form:
         resources:
             - 'path_to_template_file'

 // NEW WAY : 
  twig:
     form_themes:
         - 'path_to_template_file'
5
ответ дан axelvnk 4 March 2015 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: