【问题标题】:How should I handle warnings in Symfony?我应该如何处理 Symfony 中的警告?
【发布时间】:2016-11-21 15:15:18
【问题描述】:

在我的 Symfony 项目中,我使用了一个库来创建 ssh 连接。在我的脚本中,我将尝试使用不同的端口(prots 数组)进行连接。如果它无法使用一个端口连接,它将尝试使用下一个端口(因为我们在不同的服务器中使用不同的端口,而不是黑客攻击或端口扫描)。

当我使用的第三方库无法连接到服务器时,它会抛出 user notice。因此,如果连接的正确端口是第二个端口,它会首先抛出一个user notice 说它无法连接,然后它会连接第二个端口。

当我在prod 环境中运行 muy Symfony 项目时,一切看起来都正常(因为 user notice 消息被禁用),但在 dev 环境中,Symfony 的 ErrorHandler 将此消息转换为 Exceptions 终止代码执行。

到目前为止,我有一些选择,但我不喜欢其中任何一个:

  1. 使用error_reporting()隐藏此类消息...但有用的信息会丢失。
  2. 使用@运算符隐藏该函数的警告...但每个人都讨厌@。
  3. 在 Symfony 的 dev 环境中关闭调试...但有用的信息将会丢失。
  4. 使用try catch 来处理异常...但是为什么呢?生产中不会有异常。

最好的选择是什么?

【问题讨论】:

  • 使用不同的库?或者检查代码,看看它是否支持禁用警告的配置选项。现代图书馆没有预料到您的用例,这很奇怪。
  • @Cerad 感谢您的建议。但是关于我使用的库,当 Symfony 的开发环境中出现警告时,我应该如何处理?

标签: php symfony error-handling


【解决方案1】:

您可以通过编写一个监听 kernel.exception 的 EventListener 来根据自己的需要调整默认的 Symfony 错误处理操作。继续阅读:

https://symfony.com/doc/current/controller/error_pages.html#working-with-the-kernel-exception-event

【讨论】:

    猜你喜欢
    • 2018-04-13
    • 2013-03-18
    相关资源
    最近更新 更多