【发布时间】:2013-11-21 02:59:50
【问题描述】:
我们有一个应用程序,其中包含一个非常古老的类,用于连接到专有数据库的 API。此代码会生成大量弃用错误,然后会被记录下来,从而污染我们的日志文件。
我们只想忽略这个供应商提供的类的弃用错误,但我很难找到最好的方法来做到这一点。我见过的选项:
使用@ 抑制警告。它看起来像this does not work for includes,仅适用于返回值的函数。
创建一个包含包含的包装脚本,并关闭包含语句之前的警告。作为ini_set acts globally,关闭所有弃用警告,这不是一个可行的解决方案。 p>
更新供应商提供的脚本。我们宁愿不走这条路,因为如果新版本无法完全解决这些错误,但会添加新功能,则需要额外的工作和维护,例如。
在我缺少的这个特定供应商库中禁用警告的任何其他选项?
【问题讨论】:
-
你有没有试过把include放在一个函数里面,然后用@操作符调用这个函数?
-
如果他们提供了一个不包括修复它的更新脚本,那么一开始就不值得更新它。老实说,我要么选择“自己修复错误”路线,要么选择“寻找新脚本”路线。把头埋在沙子里让你的错误消失几乎总是一个坏主意
-
您可以
ini_set抑制供应商脚本顶部的错误,ini_set在底部恢复正常...除非供应商提供的文件包含单独调用的类或函数从其他地方? -
@SetSailMedia:根据问题它是一个数据库API类,所以几乎可以肯定只有在您开始调用方法之后才会出现弃用错误。
-
@EugenRieck 我们还没有,但会研究这样的解决方案(Jon 的回答,与你的类似)
标签: php