gpt4 book ai didi

PHP 测试 fatal error

转载 作者:可可西里 更新时间:2023-11-01 12:57:05 24 4
gpt4 key购买 nike

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

我已经设法在保存文件之前检测到解析错误,效果很好,但是如果用户创建运行时错误,例如 MyClass extends NonExistentClass,文件会通过解析检查,但会保存到文件系统,杀死应用程序。

在将新代码保存到文件系统之前,有没有办法测试它是否会导致运行时错误?似乎完全违反直觉,但我想我会问。

最佳答案

可能使用register_shutdown_function构建一个包含 fatal error 信息的 JSON 对象。然后使用 AJAX 调用来测试文件;解析调用的返回值以查看是否有错误。 (显然,您也可以在不使用 AJAX 的情况下运行 PHP 文件并解析 JSON 对象,只是从 UX 的角度考虑什么是最好的)

function my_shutdown() {
$error = error_get_last();
if( $error['type'] == 1 ) {
echo json_encode($error);
}
}
register_shutdown_function('my_shutdown');

会输出类似的东西

{"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?
}
});

关于PHP 测试 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com