如何通过目录禁用错误?

时间:2011-05-18 19:52:35

标签: php error-handling

我们正在编写基于具有大量通知和严格标准警告的库的PHP应用程序。

我们希望通过完整的错误报告来开发我们的应用程序。我们现在不能,因为lib导致了许多错误。我们希望禁止此lib中的所有错误,并仅在我们的开发计算机上显示我们的应用程序。

在set_error_handler函数的帮助下,我已经可以实现它了。

有没有其他方法可以在php.ini或vhost级别上执行此操作?

3 个答案:

答案 0 :(得分:3)

对于Apache:
添加到.htaccess文件(或在vhost配置中):

php_value error_reporting 1

但是这种分离只能在Apache解析URL时使用 让你有这个文件夹:

/www/dir/
/models/
/lib/

.htaccess放在/www/dir/lib中。

如果您将调用URL example.com/dir,则.htaccess将由Apache解析并设置设置。
但是在'include /lib/some.php'的情况下--Apache不会解析lib.htaccess也不会产生任何影响。

答案 1 :(得分:0)

简答:不。

通过检查导致错误的文件路径,使用自定义函数和set_error_handler过滤错误是您可以做的最佳事情。

其他可能更好的解决方案,但仅限于某些条件:

  • 新版本的库(如果存在并具有相同的功能)
  • 自行修复此库中的问题(如果许可证允许)
  • 在包含库之前禁用错误报告并在之后启用它(如果在包含期间发生大多数错误而非实际使用)

答案 2 :(得分:0)

我发现可以预先添加脚本:php_value auto_prepend_file prepend.php

所以我可以添加一个使用我自己的error_handler的脚本。这样我就可以通过vhost / php.ini指令触发它。

感谢您的所有输入。