added excetion handler around RequestController

Signed-off-by: tracer <tracer@24unix.net>
This commit is contained in:
tracer 2022-01-31 20:01:06 +01:00
parent 36e376337e
commit b9401769bc
1 changed files with 14 additions and 5 deletions

View File

@ -1,6 +1,9 @@
<?php declare(strict_types=1); <?php declare(strict_types=1);
namespace App\Controller; namespace App\Controller;
use Exception;
error_reporting(error_level: E_ALL); error_reporting(error_level: E_ALL);
require dirname(path: __DIR__) . '/vendor/autoload.php'; require dirname(path: __DIR__) . '/vendor/autoload.php';
@ -19,15 +22,14 @@ header(header: "Access-Control-Max-Age: 3600");
header(header: "Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); header(header: "Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// TODO make a log class // TODO make a log class
$oFile = fopen (filename: 'log.txt', mode: 'a'); $oFile = fopen(filename: 'log.txt', mode: 'a');
$uri = parse_url(url: $_SERVER['REQUEST_URI'], component: PHP_URL_PATH); $uri = parse_url(url: $_SERVER['REQUEST_URI'], component: PHP_URL_PATH);
fputs(stream: $oFile, data: $uri . PHP_EOL); fputs(stream: $oFile, data: $uri . PHP_EOL);
fclose(stream: $oFile); fclose(stream: $oFile);
$uri = explode( separator: '/', string: $uri ); $uri = explode(separator: '/', string: $uri);
if ($uri[1] !== 'api') { if ($uri[1] !== 'api') {
header(header: "HTTP/1.1 404 Not Found"); header(header: "HTTP/1.1 404 Not Found");
exit(); exit();
@ -35,6 +37,13 @@ if ($uri[1] !== 'api') {
$requestMethod = $_SERVER["REQUEST_METHOD"]; $requestMethod = $_SERVER["REQUEST_METHOD"];
$controller = new RequestController(config: $config, requestMethod: $requestMethod, uri: $uri); try {
$controller->processRequest(); $controller = new RequestController(config: $config, requestMethod: $requestMethod, uri: $uri);
$controller->processRequest();
} catch (Exception $e) {
echo json_encode(value: [
'error' => $e->getMessage()
]);
}