PHP 已弃用警告仅在文件更改时才出现

php deprecated warning is only if file changed

提问人:rubo77 提问时间:4/17/2020 最后编辑:rubo77 更新时间:4/26/2020 访问量:616

问:

我特意设置了我的error_reporting,所以我在开发时看到E_DEPRECATED警告。

现在,在某些位置上,这些警告没有显示:我成功收到警告

已弃用:与类同名的方法在将来的 PHP 版本中将不再是构造函数;...具有已弃用的构造函数

但前提是文件时间发生了变化。如果我重新加载页面,警告就会消失。如果我再次触摸文件系统上的文件,然后重新加载页面,它就在那里。

我知道如何修复错误,但如何 我是否要关闭此“功能”?

我必须做些什么才能始终收到警告?

PHP 错误报告

评论

1赞 mpen 4/17/2020
听起来这可能是缓存问题。您使用的是 opcache 还是 memcached 或类似的东西?
0赞 rubo77 4/17/2020
这些缓存是如何工作的?它们会过滤错误消息吗?我在这个Docker镜像中使用php7.4: hub.docker.com/r/tan3/php-apache
0赞 Phil 4/17/2020
stackoverflow.com/questions/5612945/......
0赞 Phil 4/17/2020
您正在使用的 Docker 映像包含扩展apcu
1赞 Barmar 4/17/2020
警告来自 PHP 编译器。缓存阻止重新编译脚本,它保存编译的版本。

答:

0赞 rubo77 4/26/2020 #1

只是不要在你的 docker 镜像中安装 opcache,所以编辑以下行:

  docker-php-ext-install -j$(nproc) intl mysqli soap gd zip opcache && \

只是

  docker-php-ext-install -j$(nproc) intl mysqli soap gd zip && \

并重建映像。

这肯定会起作用,但您可能也可以编辑php.ini并在那里禁用 opcache