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