LMSouq
moodle-core Open

Try/catch is ignored in Moodle/PHP when using httpful within a class

AL
Alex Black
1 month ago
3 views
Problem Description
I have the following PHP script, test.php in my Moodle plugin: <?php include('lib/httpful/httpful.phar'); try{ $response = \Httpful\Request::post($uri) ->body($requestbody) ->send(); }catch (Exception $e) { echo "Exception occurred"; } ?> Whenever an exception occurs the text "Exception Occurred" is displayed as expected. Then I moved the code to a function in a class, classes\http_client.php. Thus: class http_client{ public function doPost($uri, $requestbody){ try{ $response = \Httpful\Request::post($uri) ->body($requestbody) ->send(); }catch (Exception $e) { echo "Exception occurred"; } } } Now I try to invoke from test.php: $client = new http_client(); $client->doPost($uri, $requestbody); The exceptions are no longer caught and the stack trace is displayed in the browser. I have to mention that it only happens within Moodle. Outside Moodle the class http_client works fine, the catch block is executed. My settings are: Moodle 3.0.1+ (Build: 20151223), PHP 5.5.12, Apache 2.4.9. Thanks in advance

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base