如何隐藏Symfony2中的E_USER_NOTICE错误

时间:2012-11-16 10:37:46

标签: symfony error-handling

我在我的Symfony2项目中触发了这样的错误:

trigger_error('message', E_USER_NOTICE);

我如何能够抑制此错误,以至于我没有得到代码500的响应,但仅通过monolog记录此通知?

由于

1 个答案:

答案 0 :(得分:1)

使用trigger_error不是在Symfony2中触发错误的推荐方法。在Symfony2中触发错误的推荐方法是使用exceptions。在Symfony2中,您可以使用全局异常和Symfony2框架创建的异常,甚至是您在捆绑中创建的异常:

<?php
// src/Acme/DemoBundle/Exception/FooException.php
namespace Acme\DemoBundle\Exception;

class FooException extends \Exception
{
}
<?php
// src/Acme/DemoBundle/Controller/FooController.php

// ...
use Acme\DemoBundle\Exception\FooException;

// ...
public function barAction()
{
    // ... do something

    // throw an error
    throw new FooException('message');
}

但是,如果您想将某些内容记录到文件中,则可以更好地使用其中一个monolog.logger服务(doctrineeventprofilerrequestroutersecuritytemplating)。有关更多信息,请阅读the monolog documentation。您还可以创建自己的Monolog记录器,创建服务并使用它。