仅隐藏供应商提供的类的弃用警告

2024-03-20

我们有一个应用程序,其中包含一个非常非常古老的类来连接到专有数据库的 API。此代码会生成大量弃用错误,然后将其记录下来,从而污染我们的日志文件。

我们只想基本上忽略此供应商提供的类的弃用错误,但我无法找到执行此操作的最佳方法。我见过的选项:

使用抑制警告@.看起来像这不适用于包含 https://stackoverflow.com/a/18913037/357801,仅适用于有返回值的函数。

创建包含 include 的包装器脚本,并关闭 include 语句之前的警告。 As ini_set全球行动 https://stackoverflow.com/a/6491024/357801,关闭所有弃用警告,这不是一个可行的解决方案。

更新供应商提供的脚本。我们宁愿不走这条路,因为如果新版本到来,但不能完全解决这些错误,但添加了新功能,则需要额外的工作和维护。

还有其他选项可以禁用我缺少的这个特定供应商库中的警告吗?


您可以附加一个用户错误处理程序,以便在 PHP 发现错误之前消除错误。仅当错误是在有罪库的源内部生成时,该处理程序才会进行干预。例如:

class SingleSourceFileErrorSuppressor
{
    private $_file;

    public function __construct($file)
    {
        $this->_file = $file;
    }

    public function handleError($errno, $message, $file)
    {
        if ($file !== $this->file) return false;
    }
}

您可以像这样使用该类:

$naughtyLibrary = realpath('naughty.class.php');
$suppressor = new SingleSourceFileErrorSuppressor($naughtyLibrary);
set_error_handler([$suppressor, 'handleError'], E_DEPRECATED);
require($naughtyLibrary);

更新:我认为即使对于微不足道的修改,修改供应商的库源也不是最好的主意,因为您必须记住维护它们,因此更改了建议的安装过程。新过程有一个不同的缺点:它不会自动搜索include_path。原始建议可通过答案的编辑历史记录获得。选择你的毒药。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅隐藏供应商提供的类的弃用警告 的相关文章

  • 在 Codeigniter 中显示来自连接的数据

    我正在使用简单的联接从两个数据库中提取数据 这是模型中的连接 function com control this gt db gt select this gt db gt from comments this gt db gt join
  • 从路径中删除不必要的斜杠

    path home to my site 我正在尝试删除不必要的正斜杠 从上面的路径 我正在努力得到这个结果 home to my site 我失败了str replace 因为我不知道斜线的数量 优雅的解决方案 With preg rep
  • 无法通过 ssh 访问服务器下载 Composer - 1and1

    我可以通过 SSH 访问我的 1and1 服务器 我正在尝试下载作曲家 遵循来自的指示http getcomposer org download http getcomposer org download 尝试1 user gt curl
  • 在产品页面上显示最近浏览过的产品

    magento 当前的默认功能是在类别页面的右侧显示最近查看的产品 现在我想在产品页面底部显示相同的内容 使用的 phtml 文件在位置命名为 frontend base default template reports product v
  • PHP中如何检查输入类型按钮是否被按下?

    isset 函数可用于检查输入类型submit被按下 但是有没有办法检查输入类型按钮是否被按下 在我的代码中 按钮什么也不做 只是在 Onclick 事件上调用一个函数 然后刷新页面并在 PHP 中创建数据库条目 并且我希望它仅在按下按钮后
  • 在 PHP Codeigniter 中向 form_submit 添加一个类

    我正在尝试在 PHP Codeigniter 中向 form submit 添加一个类 我正在使用以下代码 attributes1 array class gt btn btn danger echo form submit loginSu
  • 通过 preg_match_all PHP 函数从 html 代码字符串中提取 img 标签

    我有一些 html 代码并提取了img src来自它的属性 html 字符串中有一些像这样的 img img src http www pecso it wp content uploads 2016 12 10 WRAS png 我尝试使
  • 回退到正则表达式中字符串的开头

    是否可以让正则表达式退回到字符串的开头并再次开始匹配 这就是我问的原因 给定下面的字符串 我想捕获子字符串black red blue and green按照该顺序 无论主题字符串中出现的顺序如何 并且仅当所有子字符串都存在于主题字符串中时
  • 估计 libGD 操作所需的内存

    在尝试使用 libGD 在 PHP 中调整图像大小之前 我想检查是否有足够的内存可用于执行该操作 因为 内存不足 会完全终止 PHP 进程并且无法捕获 我的想法是 原始图像和新图像中的每个像素 RGBA 需要 4 字节内存 check av
  • 定义根路径

    我正在寻找一种将配置变量定义为我的网站的根路径的方法 定义这个的最好方法是什么 我正在使用 Codeigniter config root path 这是我的 config 文件夹中的 site config 文件 dev dev appl
  • Laravel htmlspecialchars() 期望参数 1 是我的项目中给出的字符串、对象?

    所以我正在尝试编写一个简单的网站表单 但它有这个 htmlspecialchars 错误 我尝试制作 message 但没有成功 有同样的错误 这是我的控制器
  • 使用 nuxtjs 登录 laravel sainttum 后出现 401(未经身份验证)错误

    我已经安装了 laravel v 7 30 4 nuxtjs v 2 15 7 当我使用 nuxtjs auth 模块登录我的 laravel sainttum 后 当 nuxt 尝试获取用户时 laravel 响应 401 错误 未经身份
  • strpos 0==false 问题?

    我使用 strpos 来查找一个字符串在另一个字符串中的位置 我首先检查是否在那里找到了该字符串 这是我的台词 if strpos grafik data ss1 lt gt false strpos grafik data ss2 lt
  • Laravel 5:如何检索并显示属于特定类别的所有帖子

    我有3张桌子 user id username subreddits id name created at posts id title link user id subreddit id 问题是 我手动获取 subreddit 类别的 i
  • 从多维数组中删除多个值

    我有一个来自 WordPress 的数组get posts 功能 posts array 15 0 gt object WP Post 285 24 ID gt int 253 post author gt string 1 1 post
  • Laravel - LIKE 运算符来搜索加密值

    我正在尝试在 Laravel 应用程序中实现一个搜索模块 可以按名称过滤用户 为了保护用户 name 列行在数据库上加密 我面临的问题是下面的查询总是返回 0 结果 我在搜索数据库之前对搜索输入值进行加密 patients DB selec
  • PHP json_encode json_decode UTF-8

    如何将包含国际字符的 json 编码字符串保存到数据库 然后在浏览器中解析解码后的字符串
  • PHP 指针与引用

    在 PHP 中 使用指针有什么区别 例如 function foo var var 3 a 0 foo a 以及参考 function foo var var 3 a 0 foo a 它们都修改了原始变量的值 但是它们内部的表示方式不同吗
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • WP_Query 相同的请求,不同的语法 - 其中之一不起作用

    我有一个运行良好的 WP Query args array post type gt product meta key gt product subtype meta value gt public compare gt 但当我想搜索多个m

随机推荐