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

Так как мой Symfony 2 обновить до 2.7, Я получаю много устаревших ошибок в PHPUnit а также console (сообщение уже ясно).

ProjectX\ApiBundle\Tests\Controller\SectionsControllerTest::testPostDebug()
The twig.form.resources configuration key is deprecated since version 2.6 and will be removed in 3.0. Use the twig.form_themes configuration key instead.

Есть идеи, как их отключить сейчас?

29

Решение

У меня та же проблема, и я решил ее аналогично ссылке ниже. 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

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

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

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

+ Изменить

Debug::enable();

в

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

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

44

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

Измени свой phpunit.xml с

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

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

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

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

34

Обратите внимание, что отключение предупреждений об устаревании с помощью 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'
6

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

 ///DEPRECATED :

twig:
form:
resources:
- 'path_to_template_file'

// NEW WAY :
twig:
form_themes:
- 'path_to_template_file'
5
По вопросам рекламы [email protected]