Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP致命错误测试_Php_Runtime - Fatal编程技术网

PHP致命错误测试

PHP致命错误测试,php,runtime,Php,Runtime,这有点遥不可及,但我想我还是会问的。我有一个应用程序,它使用ACE编辑器进行基于web的代码编辑,就像您在Github上找到的那样。问题是,可以编辑应用程序本身中的代码 在保存文件之前,我已经成功地检测到了解析错误,这非常有效,但是如果用户创建了运行时错误,例如MyClass extends NonExistentClass,则该文件通过了解析检查,但保存到文件系统,导致应用程序死机 在我将新代码保存到文件系统之前,是否需要测试它是否会导致运行时错误?看起来完全违反直觉,但是我想我应该问一下。也

这有点遥不可及,但我想我还是会问的。我有一个应用程序,它使用ACE编辑器进行基于web的代码编辑,就像您在Github上找到的那样。问题是,可以编辑应用程序本身中的代码

在保存文件之前,我已经成功地检测到了解析错误,这非常有效,但是如果用户创建了运行时错误,例如
MyClass extends NonExistentClass
,则该文件通过了解析检查,但保存到文件系统,导致应用程序死机


在我将新代码保存到文件系统之前,是否需要测试它是否会导致运行时错误?看起来完全违反直觉,但是我想我应该问一下。

也许先在一个单独的文件中运行代码,然后在底部附加一些固定的代码来检查它是否计算?

可能有用:
php-f
如果出现运行时错误,将返回非零退出代码。

可能用于构建包含致命错误信息的JSON对象。然后使用AJAX调用测试文件;分析调用返回的值以查看是否存在错误。(显然,您也可以运行PHP文件并解析JSON对象,而无需使用AJAX,只需考虑从UX的角度看什么是最好的)

将输出如下内容

{"type":1,"message":"Fatal error message","line":1}
将其前置到测试文件的开头,然后:

$.post('/test.php', function(data) {
    var json = $.parseJSON(data);
    if( json.type == 1 ) {
        // Don't allow test file to save?
    }
});

哇!这是我在这个网站上看到的最好的问题之一。我期待着自己的回答。可能是有
eval()
值得检查的东西。没有经过测试,所以不能保证它能正常工作。。。我会把这个问题留一段时间,看看其他人有什么想法。
$.post('/test.php', function(data) {
    var json = $.parseJSON(data);
    if( json.type == 1 ) {
        // Don't allow test file to save?
    }
});