自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.
现在知道如何禁用它们吗?
答案 0 :(得分:45)
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);
这会在抑制折旧警告的同时保留所有其他错误报告。而且你根本不需要搞乱内核。
答案 1 :(得分:35)
在我的情况下,我无法在不使用SYMFONY_DEPRECATIONS_HELPER
环境变量的情况下隐藏弃用警告。
使用
更改phpunit.xml
<phpunit>
<!-- ... -->
<php>
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/>
</php>
</phpunit>
然后,您将只有一条消息,例如“剩余弃用通知(x)”,这不会被视为测试失败。
希望这会有所帮助。
答案 2 :(得分:16)
我遇到了同样的问题并解决了类似下面的链接。 Symfony声明报告所有错误并覆盖你在php.ini中设计的内容(否则它无法捕获并显示好的堆栈跟踪)。
因此,您需要通过在AppKernel.php中创建init()
函数并设置error_reporting您希望的方式来覆盖Symfony2的内置错误报告, (可能)进行一些环境检测,以确保您不会在生产中显示错误,例如:
// 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翻译:) http://tokarchuk.ru/2012/12/disable-deprecated-warnings-in-symfony-2/
答案 3 :(得分:7)
请注意,通过error_reporting()或Debug :: enable()禁用弃用警告不会阻止它们记录到dev.log 。要禁止它们被记录,您需要将monolog处理程序中的日志级别更改为&#34; warning&#34; (弃用警告记录为&#34;信息&#34;在&#34; php&#34;频道中)。
或者,为了防止其他日志受到影响,您可以为&#34; php&#34;创建一个具有不同级别的单独的monolog处理程序。通道,例如
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'
答案 4 :(得分:5)
twig.form配置密钥已在新版本的Twig中删除。因此,您应该替换config.yml中的密钥
///DEPRECATED :
twig:
form:
resources:
- 'path_to_template_file'
// NEW WAY :
twig:
form_themes:
- 'path_to_template_file'