我继承了一些PHP源代码,我必须维护它。它是从头开始构建的,不使用框架,只是前开发人员自己的创建。
现在,我问这个:
有没有办法在不修改代码的情况下忽略php.ini / ini_settings中的致命错误?
情景:
SomeClass.php:
<?php class SomeClass {
...)?>
的index.php:
include("SomeClass.php");
...
include("SomeClass.php");
在我的开发框中,这会抛出一个致命错误异常(因为SomeClass已被声明两次),这是明显的和预期的行为。
以下是踢球者:此源位于某个地方,并且可以正常工作。我只是不能访问该服务器。
所以我在这里看到两个场景:
1。)有一种方法可以通过ini设置来解决这个致命错误。我必须知道。
2。)前开发人员没有向我提供当前正在运行的确切,更新的源代码。然后我必须坚持他给我最新的源代码,但是如果我100%确定没有办法#1可以发生,我只能这样做。
你们有什么想法?
答案 0 :(得分:2)
我尝试设置一个不会因致命错误而死的set_error_handler()
函数,而是Apache崩溃了。换句话说,PHP 需要以便系统不会死。
所以,对不起,我真的不认为有解决方案。
答案 1 :(得分:1)
致命错误不是来自包含功能 - 仅警告。但是,你会因为需要而致命。使用@include,它甚至不会生成警告。
答案 2 :(得分:0)
通知您的开发者他应该使用__autoload
或spl_autoload
来避免此类错误......
答案 3 :(得分:0)
生产服务器上主要不鼓励报告错误。为什么让用户看看您的脚本是否找不到文件。看看这个http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors和http://www.php.net/manual/en/function.set-error-handler.php。后者可能会有所帮助,请查看页面中的示例。我建议记录错误而不是显示错误。但这将涉及到代码的某种解决方法。