我的 Moodle 插件中有以下 PHP 脚本 test.php:
<?php
include('lib/httpful/httpful.phar');
try{
$response = \Httpful\Request::post($uri)
->body($requestbody)
->send();
}catch (Exception $e) {
echo "Exception occurred";
}
?>
每当发生异常时,都会按预期显示文本“发生异常”。然后我将代码移动到类中的一个函数,classes\http_client.php。因此:
class http_client{
public function doPost($uri, $requestbody){
try{
$response = \Httpful\Request::post($uri)
->body($requestbody)
->send();
}catch (Exception $e) {
echo "Exception occurred";
}
}
}
现在我尝试从 test.php 调用:
$client = new http_client();
$client->doPost($uri, $requestbody);
不再捕获异常并且堆栈跟踪显示在浏览器中。
我不得不提到它只发生在 Moodle 中。在 Moodle 之外,http_client 类工作正常,catch 块被执行。
我的设置是:Moodle 3.0.1+(内部版本:20151223)、PHP 5.5.12、Apache 2.4.9。
提前致谢